Блокировка мьютекса, когда разделяемая память только для чтения

0

Я уверен, что, если разделяемая память между потоками считывается и никогда не записывается ни одним из потоков, защита мьютекса не нужна?

Это из-за того, что везде, где поток выгружен, он всегда может сниматься при перепланировке, и содержимое памяти не изменилось бы.

  • 0
    Этот предыдущий SO может ответить на него.
  • 0
    @SunEric: здесь не упоминается ответ на мой вопрос.
Теги:
multithreading

2 ответа

4
Лучший ответ

Да, вы правы, несколько потоков, читающих одну и ту же переменную, не представляют гонки.

  • 2
    Он не пишет, это точка дыры!
  • 0
    @KerrekSB Лол, каламбур не был предназначен)
Показать ещё 3 комментария
3

Оба С++ 11 и C11 определяют гонку данных для доступа к ячейке памяти более чем одним контекстом выполнения без упорядочения, где по крайней мере один из обращений является записью. Если у вас нет записей, у вас нет гонок.

  • 0
    NASCAR не согласен. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню