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

Вниз

3 потока и одна переменная   Найти похожие ветки 

 
maksim   (2011-05-15 11:44) [0]

есть 3 потока и 1 общая переменная
один поток может изменять значение этой переменной, а 2 других потока не могут менять ее значение, только читают.
Вопрос: нужна ли тут критическая секция?


 
sniknik ©   (2011-05-15 11:53) [1]

зависит от типа переменной. или от правил (ну вот взять себе за правило, что она всегда нужна при обращении из разных потоков...)


 
maksim   (2011-05-15 12:06) [2]

тип интеже, назовем N

вот в одном потоке допустим при каком-то условии увеличиваем N в 2 раза

в двух других потоках используем эту переменную как входную для какой-то функции f(N), то есть этими двумя потоками переменная N не может меняться


 
Юрий Зотов ©   (2011-05-15 13:38) [3]


> maksim   (15.05.11 12:06) [2]

Зависит от задачи. Если читающим потокам все равно, какое значение N они получат, то синхронизация не нужна. А если читающий поток всегда должен получать строго новое значение N (то есть, строго ПОСЛЕ того, как его установит пишущий поток), то синхронизация нужна.


 
maksim   (2011-05-15 14:59) [4]

ага, вроде понятно, спасибо за ответы


 
sniknik ©   (2011-05-15 15:00) [5]

> какое значение N они получат
либо старое, либо новое,
смена значения у интеждера же атомарная, т.е. он его не побайтно меняет, с  возможностью прервать операцию на обработку потоком. нет?

> А если читающий поток всегда должен получать строго новое значение N
ну, в этом случае, если строго новое, я бы тоже без синхронизации обошелся...  просто бы посылал потоку новое значение при его смене.



Страницы: 1 вся ветка

Текущий архив: 2011.08.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.007 c
2-1305552149
Соня
2011-05-16 17:22
2011.08.28
Запросы в ADODataSet


15-1304773902
картман
2011-05-07 17:11
2011.08.28
Господь меня услышал


15-1304785332
TUser
2011-05-07 20:22
2011.08.28
delphi for html/javascript ?


15-1305086552
Demo
2011-05-11 08:02
2011.08.28
Дисковое пространство для форума


15-1304220544
PiterPen
2011-05-01 07:29
2011.08.28
Delphi x64