c++11的mutex unique_lock和lock_guard區別

來源:互聯網
上載者:User

 C++11中有一個地區鎖lock_guard,還有第二個地區鎖unique_lock。

    地區鎖lock_guard使用起來比較簡單,除了建構函式外沒有其他member function,在整個地區都有效。

    地區鎖unique_guard除了lock_guard的功能外,提供了更多的member_function,相對來說更靈活一些。

    unique_guard的最有用的一組函數為:

   

lock locks the associated mutex 
(public member function)
try_lock tries to lock the associated mutex, returns if the mutex is not available 
(public member function)
try_lock_for attempts to lock the associated TimedLockable mutex, returns if the mutex has been unavailable for the specified time duration 
(public member function)
try_lock_until tries to lock the associated TimedLockable mutex, returns if the mutex has been unavailable until specified time point has been reached 
(public member function)
unlock unlocks the associated mutex 

    通過上面的函數,可以通過lock/unlock可以比較靈活的控制鎖的範圍,減小鎖的粒度。

    通過try_lock_for/try_lock_until則可以控制加鎖的等待時間,此時這種鎖為樂觀鎖。

    以上為粗淺理解,後面有新的心得在補充之。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.