仅在读取共享内存时锁定互斥锁

时间:2014-02-05 19:35:35

标签: c++ c multithreading

我的印象是否正确如果线程之间的共享内存只被读取而且从未被任何线程写入,那么互斥保护是不必要的?

这是因为在线程被抢占的任何地方,它都可以在重新安排时再次起飞,并且内存内容不会发生变化。

2 个答案:

答案 0 :(得分:4)

是的,你是对的,读取相同变量的多个线程不会引入竞争。

答案 1 :(得分:3)

C ++ 11和C11都定义了数据竞争,以便通过多个执行上下文访问内存位置,而无需排序,其中至少有一个访问是写入。如果你没有写作,你就没有比赛。