Форум: "Основная";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];
ВнизПотоки и глобальные переменные Найти похожие ветки
← →
S@shka (2003-08-07 13:58) [0]Доброе, есть глобально объявленая переменная (по сути флаг)
var
boolFlag : Boolean;
по умолчанию FALSE;
Есть два потока, в одном из который она устанавливается в TRUE - как реакция на определенное событие.
Втрой поток периолически (по таймеру) проверяет это значение...
if (boolFlag)
then begin
boolFlag := FALSE;
DoSomething;
end;
Вопрос не возникнут ли проблемы при доступе к данной переменной из разных потоков?
← →
vuk (2003-08-07 14:09) [1]А почему переменная, а не Event, например?
← →
Digitman (2003-08-07 15:05) [2]маловероятно, что проблемы возникнут, но - не исключено полностью.
именно по этой причине следует либо воспользоваться крит.секцией для монопольного доступа к этой зоне памяти либо реализовать то же самое с пом. asm-инструкции CMPXCHG
← →
pasha_golub (2003-08-07 16:33) [3]2Digitman
Не, критическая секция нужна не для доступа к зоне памяти, а для доступа к участку кода.
2S@shka
Я думаю ни фига не будет, юзай. Хотя vuk очень точно подметил
← →
panov (2003-08-07 16:56) [4]см. группу функций Interlock*
← →
Digitman (2003-08-07 17:16) [5]
> pasha_golub
те же я., но вид сбоку - "монопольное обращение участка кода к зоне памяти")
← →
vuk (2003-08-07 17:31) [6]Только если посмотреть на решаемую задачу, то критические секции там нужны как в бане лыжи. Тем более, что есть средства, которые предназначены специально для решения этих задач. Я про WaitForXXXX и Event.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c