1
我進入了需要在兩個處理線程之間鎖定資源(std::queue
)的情況。C++ std :: lock和std :: unique_lock之間有什麼區別?
第一個線程需要push
數據到std::queue
,而第二個線程要去pop
那個數據出隊列並處理它。
我需要確保兩個線程不會爲我的std::queue
競爭。
由於這是用C++鎖我的第一次,我到了不同的方法:std::lock
和std::unique_lock
,但我不知道該選擇哪一個?
是什麼std::lock
和std::unique_lock
之間的差異應該如何使用它們。
感謝您的幫助。
特別是,'std :: lock'通常與'std :: defer_lock'構造的一堆'unique_lock'一起使用。 –