Форум: "Начинающим";
Текущий архив: 2011.08.28;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c