我有兩個線程共享一個變量,但他們都沒有寫入該變量。我明白,當兩個線程動態讀取或寫入變量時,您確實需要一個互斥量。但是,既然我只是從兩個線程中讀取共享變量,我是否仍然需要使用互斥鎖?在我的情況下需要互斥體
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