Подтвердить что ты не робот

Имеет ли смысл доступ к данным только для чтения из нескольких потоков одновременно?

У меня есть приложение, которое я пытаюсь сделать многопоточным. Каждый поток получает доступ к большому фрагменту данных только для чтения.

Это нормально, если несколько потоков одновременно обрабатывают данные? Я знаю, что если данные не были доступны только для чтения, мне нужно было бы использовать мьютексы или какую-то другую форму синхронизации для предотвращения условий гонки. Но мне интересно, нормально ли читать данные без учета синхронизации.

Данные, о которых идет речь, не будут изменены в течение всех потоков. Приложение будет работать в Linux и Windows и написано на С++, если это имеет значение.

4b9b3361

Ответ 1

Если данные доступны только для чтения для всех потоков, которые его читают, то да, это совершенно нормально читать без синхронизации.

Ответ 2

Если данные действительно доступны только для чтения в течение многопоточного доступа, синхронизация не требуется.

Ответ 3

Да, это прекрасно.

У вас не должно быть никаких проблем.

Ответ 4

Если данные фиксируются до начала любого из потоков чтения, то да, это нормально.