Если данные исправлены до начала какого-либо потока чтения, тогда да, все в порядке.

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

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

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