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

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

Я использую pthread для создания потока в классе — обертке с полем bool mAnyField. В главной функции потока «A» очень большое число раз проверяю состояние этого поля и если поле false завершаю выполнение. Собственно вопрос — можно ли из другого потока «B» поменять это поле без синхронизации и соответственно читать поле (в потоке «A») тоже без синхронизации? Чем это черевато? Не хочу использовать синхронизацию только лишь из вопросов производительности.
  • Вопрос задан
  • 3243 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Linux для робототехников
    3 месяца
    Далее
  • Stepik
    Основы Linux
    2 недели
    Далее
  • Учебный центр IBS
    AL-1801 ОС Astra Linux Special Edition 1.8 для пользователей
    1 неделя
    Далее
Решения вопроса 1
@lesha_penguin
Если меняет поле только один поток, а все остальные только читают — то да (только volatile у поля не забываем).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@gribozavr
Нет, нельзя. Нужны как минимум барьеры памяти.
Ответ написан
Ваш ответ на вопрос

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

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