码迷,mamicode.com
首页 > 编程语言 > 详细

C++11中lock_guard和unique_lock的区别

时间:2017-08-01 19:24:00      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:enc   cep   比较   pac   begin   read   sso   有用   trie   

c++11中有一个区域锁lock_guard,还有第二个区域锁unique_lock。

区域锁lock_guard使用起来比较简单,除了构造函数外没有其他member function,在整个区域都有效。

区域锁unique_guard除了lock_guard的功能外,提供了更多的member_function,相对来说更灵活一些。

 unique_guard的最有用的一组函数为:

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

 

通过上面的函数,可以通过lock/unlock可以比较灵活的控制锁的范围,减小锁的粒度。

通过try_lock_for/try_lock_until则可以控制加锁的等待时间,此时这种锁为乐观锁。

C++11中lock_guard和unique_lock的区别

标签:enc   cep   比较   pac   begin   read   sso   有用   trie   

原文地址:http://www.cnblogs.com/jiu0821/p/7269777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!