Ответ 1
Если данные доступны только для чтения для всех потоков, которые его читают, то да, это совершенно нормально читать без синхронизации.
У меня есть приложение, которое я пытаюсь сделать многопоточным. Каждый поток получает доступ к большому фрагменту данных только для чтения.
Это нормально, если несколько потоков одновременно обрабатывают данные? Я знаю, что если данные не были доступны только для чтения, мне нужно было бы использовать мьютексы или какую-то другую форму синхронизации для предотвращения условий гонки. Но мне интересно, нормально ли читать данные без учета синхронизации.
Данные, о которых идет речь, не будут изменены в течение всех потоков. Приложение будет работать в Linux и Windows и написано на С++, если это имеет значение.
Если данные доступны только для чтения для всех потоков, которые его читают, то да, это совершенно нормально читать без синхронизации.
Если данные действительно доступны только для чтения в течение многопоточного доступа, синхронизация не требуется.
Да, это прекрасно.
У вас не должно быть никаких проблем.
Если данные фиксируются до начала любого из потоков чтения, то да, это нормально.