我有一个应用程序,我正在尝试制作多线程。每个线程都将访问大量只读数据。
如果多个线程同时访问数据,那可以吗?我知道如果数据不是只读的,我需要使用互斥锁或其他形式的同步来防止竞争条件。但是我想知道是否可以读取数据而不考虑同步。
在所有主题的持续时间内,不会修改相关数据。该应用程序将在Linux和Windows上运行,如果有任何不同,则使用C ++编写。
答案 0 :(得分:19)
如果数据在读取它的所有线程的生命周期内都是只读的,那么是的,没有同步就可以完全读取。
答案 1 :(得分:11)
如果数据在多线程访问期间是真正的只读,则不需要同步。
答案 2 :(得分:3)
是的,没关系。
你不应该有任何问题。
答案 3 :(得分:3)
如果数据在任何读取线程开始之前被修复,那么是的,没关系。