Задать вопрос
antonyter
@antonyter

Вопрос по теме синхронизации?

Я использую pthread для создания потока в классе — обертке с полем bool mAnyField. В главной функции потока «A» очень большое число раз проверяю состояние этого поля и если поле false завершаю выполнение. Собственно вопрос — можно ли из другого потока «B» поменять это поле без синхронизации и соответственно читать поле (в потоке «A») тоже без синхронизации? Чем это черевато? Не хочу использовать синхронизацию только лишь из вопросов производительности.
  • Вопрос задан
  • 3240 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@lesha_penguin
Если меняет поле только один поток, а все остальные только читают — то да (только volatile у поля не забываем).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@gribozavr
Нет, нельзя. Нужны как минимум барьеры памяти.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы