遇到的C++常用mutex与lock记录

互斥对象mutex

std::mutex
std::recursive_mutex               递归 Mutex 类
std::timed_mutex                    定时 Mutex 类
std::recursive_timed_mutex    定时递归Mutex类
boost::mutex
boost::try_mutex
boost::timed_mutex
boost::recursive_mutex
boost::recursive_try_mutex
boost::recursive_timed_mutex

boost::mutexboost::shared_mutex,其中mutexlockunlock方法,shared_mutex除了提供lockunlock方法外,还有shared_lockshared_unlock方法。因此,boost::mutex为独占互斥类,boost::shared_mutex为共享互斥类。shared_mutex可用于构造读写锁

模板类lock

lock基本模板类:template<classMutex>class lock_guard

lock基本模板类:template<classMutex>class unique_lock

Boost:

boost::lock_guard<classMutex> guard(classMutex);

boost::unique_lock<classMutex> lock(classMutex);

boost::shared_lock<classMutex> lock(classMutex);

lock区域锁类:scoped_lock

lock自旋锁类:spinlock

boost::unique_lock<T>boost::shared_lock<T>,其中unique_lock为独占锁,shared_lock为共享锁。unique_lock<T>中的T可以为mutex类中的任意一种,如果为shared_mutex,那么boost:: unique_lock<boost::shared_mutex>类的对象构造函数构造时,会自动调用shared_mutexshared_lock方法,析构函数里,会自动调用shared_mutexshared_unlock方法。如果是boost:: unique_lock<boost::mutex>,则分别自动调用lockunlock方法。

boost::shared_lock<T>中的T只能是shared_mutex类。

有错误的地方欢迎指正!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值