Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.21;
Скачать: CL | DM;

Вниз

Потоки и глобальные переменные   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
1-68274
Xeon
2003-08-06 06:49
2003.08.21
Всё в одном


14-68525
Khloo!
2003-08-06 11:32
2003.08.21
Работа с таблицей


1-68368
Akvilon
2003-08-08 01:22
2003.08.21
TListView.Column(s) - как?


7-68559
Kirill_S
2003-06-06 18:03
2003.08.21
как получить список программ свернутых в SysTray?


1-68319
IGoRka
2003-08-08 17:58
2003.08.21
как узнать завершение роботи программи ...