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

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

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

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

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