我有两个线程共享一个变量,但他们都没有写入该变量。我明白,当两个线程动态读取或写入变量时,您确实需要一个互斥量。但是,既然我只是从两个线程中读取共享变量,我是否仍然需要使用互斥锁?在我的情况下需要互斥体
P.S.我是一个C++程序,我使用std :: mutex。
我有两个线程共享一个变量,但他们都没有写入该变量。我明白,当两个线程动态读取或写入变量时,您确实需要一个互斥量。但是,既然我只是从两个线程中读取共享变量,我是否仍然需要使用互斥锁?在我的情况下需要互斥体
P.S.我是一个C++程序,我使用std :: mutex。
只要他们只从变量中读取数据,并且变量可以用一个存储/读取字操作进行写入/读取,那么您就不会。
...并且在两个线程从它读取时没有其他线程写入该变量......并且只要没有可变内部变化的成员该对象作为读取的一部分。 – 2014-11-07 02:01:21
你不需要一个互斥(或任何其他同步)只为阅读。 – Jon 2014-11-06 23:12:05
我没有downvote,但我想他/她希望你提供一个示例代码,以便我们可以给出更好的答案。例如一个int变量不需要锁,但long long会长 – Steve 2014-11-06 23:37:25