На одном ядре - DOS, на втором супервайзер.
суперкластер ага)
тогда уж вин95
начать с win 3.1
если по честному тогда уж с win 2.0
Вопрос к поднаторевшим: Корректно ли использовать в качестве семафора использовать булеву volatile переменную в многопоточной обработке во избежания коллизий при доступе к переменной. Пример в коде:
/// Осциллоскоп ¯\_(ツ)_/¯
#include <GyverOLED.h>
GyverOLED<SSH1106_128x64> oled;
volatile uint16_t sensorValue;
volatile bool fBuzy = false;
void setup() {
Serial.begin(115200);
}
void loop() {
uint16_t tempVal;
tempVal = analogRead( A0);
fBuzy^=true; // установить флаг занятости
sensorValue = tempVal;
fBuzy^=true; // сбросить флаг занятости
Serial.println(sensorValue);
delay(1);
}
void setup1() {
oled.init();
Wire.setClock( 1200000L);
}
void loop1() {
uint16_t tempVal;
uint16_t prevVal;
oled.clear();
prevVal = 0;
for (byte x = 0; x < 128; x++) {
while ( fBuzy);
tempVal = sensorValue;
tempVal = (tempVal - 200)<<1;
oled.line( x, prevVal, x+1, tempVal, x?1:0);
//oled.dot( x, tempVal, 1);
prevVal = tempVal;
delay(1);
}
oled.update();
}
А переводить volatile не пробовал перед тем как задать вопрос вопрос?
Идея состояла в использовании не оптимизированной булевой переменной в качестве семафора с изменением её атомарной операцией XOR…
В общем то, работать это будет, если судить по обсуждению на c++ - When to use volatile with multi threading? - Stack Overflow. Но не рекомендуется…
Кем?