如果所有线程都读取了一个全局变量,该变量在创建线程之前由main()分配了一个值。我们需要任何Mutex进行同步吗?
答案 0 :(得分:1)
用于读取变量:no
写入和读取变量:是
答案 1 :(得分:1)
没有
当多个线程访问内存位置(通过非原子值)并且至少有一个访问是写入且操作未被排序时,就会发生数据竞争。
由于线程创建是一个同步点,所以在创建线程之后的所有访问都是在初始写访问之后排序的,而后面的访问只是读取。所以没有种族。
答案 2 :(得分:0)
如果任何线程想要更改全局变量的值然后是,则需要一个新的互斥锁。否则不需要同步。