boost::scope_lock,boost::shared_lock,boost::unique_lock

1.boost::scope_lock

嚴格基於作用域(scope-based)的鎖管理類模板,構造時是否加鎖是可選的(不加鎖時假定當前線程已經獲得鎖的所有權),析構時自動釋放鎖,所有權不可轉移,對象生存期內不允許手動加鎖和釋放鎖

2.boost::shared_lock,boost::unique_lock

    shared_lock是read lock。被鎖後仍允許其他線程執行同樣被shared_lock的代碼。這是一般做讀操作時的需要。
    unique_lock是writelock。被鎖後不允許其他線程執行被shared_lock或unique_lock的代碼。在寫操作時,一般用這個,可以同時限制unique_lock的寫和share_lock的讀。

用例參考:

https://www.cnblogs.com/defen/p/4410232.html

3.boost::shared_mutex

shared_mutex的適用場景比較特殊:一個或多個讀線程同時讀取共享資源,且只有一個寫線程來修改這個資源,這種情況下才能從shared_mutex獲取性能優勢

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章