C++的鎖鎖鎖鎖鎖鎖鎖鎖鎖鎖鎖鎖

std::lock_guard

std::lock_guard 在構造函數中進行加鎖,析構函數中進行解鎖。

std::unique_lock

類 unique_lock 是通用互斥包裝器,允許延遲鎖定、鎖定的有時限嘗試、遞歸鎖定、所有權轉移和與條件變量一同使用。
unique_lock比lock_guard使用更加靈活,功能更加強大。
使用unique_lock需要付出更多的時間、性能成本。

std::defer_lock_t, std::try_to_lock_t, std::adopt_lock_t

Type Effect(s)
defer_lock_t do not acquire ownership of the mutex
try_to_lock_t try to acquire ownership of the mutex without blocking
adopt_lock_t assume the calling thread already has ownership of the mutex

std::lock

std::condition_variable

void wait( std::unique_lock<std::mutex>& lock, Predicate pred );

等價於

while (!pred()) {
    wait(lock);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章