Консультация № 56489
23.09.2006, 22:27
0.00 руб.
0 2 1
№56440 продолжение.
Нужно написать программу для WinXP/WinCe.
Объясните пожайлуста в чем смысли использования семафоров. (я знаю что это такое, но не вижу выгоды) Данные представляют собой кардиограмму, т.е. меняются достаточно быстро.

Обсуждение

Неизвестный
24.09.2006, 00:57
общий
Насколько я понял вашу задачу. Даже если случится критическая ситуация, ничего страшного не произойдет. Но вот если у вас один поток будет производить данные быстрей, чем другой их считывает, ничего хорошего не выйдет (хотя, может быть, и плохого - ничего). Поэтому лучше все-таки чтобы они не разбегались сильно далеко.Если вы считаете, что буффера у вас точно хватит, то - пожалуйста. Пишите без семафоров.Однако, надо еще помнить о том, что программу может захотеться доделать, улучшить. И в какой-то момент все равно может понадобится синхронизация.
давно
Академик
20764
1861
24.09.2006, 11:10
общий
это ответ
Здравствуйте, Shtasik!

Смысл в том, что когда первый поток меняет данные в то время, когда второй их обрабатывает, второй может увидеть чушь. А в худшем случае - задача полетит кувырком (например, если данные - это связанный список - класс std::list<> к примеру) в непредсказуемый момент.
Форма ответа