在我的情况下是否需要互斥锁

时间:2014-11-06 23:09:52

标签: c++ multithreading synchronization mutex

我有两个线程共享一个变量,但它们都没有写入该变量。我知道当两个线程动态读取或写入变量时,您需要一个互斥锁。但是,因为我只是从两个线程中读取共享变量,我还需要使用互斥锁吗?

P.S。我是一个C ++程序,我使用的是std :: mutex。

2 个答案:

答案 0 :(得分:2)

如果保证变量不被更改,则读取不需要互斥锁。

但是如果:

  1. 在您的线程尝试读取变量的同时,可能会(通过任何线程)写入变量
  2. 而且,读/写不是原子的
  3. 然后你需要同步。

答案 1 :(得分:1)

只要他们只是从变量中读取,并且可以使用一个存储/读取字操作来写入/读取变量,那么你就不会。