boost共享锁

C++ 自带的临界区、Mutex等只支持唯一锁,这对性能是有很大影响的。

Boost提供共享锁功能,能够对读写区分加锁。在系统性能优化时,是一个需要考虑的问题。

// 头文件
#include <boost/thread/shared_mutex.hpp>
#include <boost/thread.hpp>

typedef boost::shared_mutex                Lock;                    
typedef boost::unique_lock<Lock>    WriteLock;
typedef boost::shared_lock<Lock>    ReadLock;

Lock  myLock;           mutex对象定义

void ReadFunc()
{
    ReadLock  r_lock(myLock);         // 加读锁
  //  处理代码
}

void WriteFunc()
{
    WriteLock  w_lock(myLock);      // 加写锁
   // 处理代码
}
锁住的对象都是myLock;  可以同时加多个读锁,但是一旦加写锁时,就不能加别的读锁和写锁

转载于:https://www.cnblogs.com/ityujian/archive/2013/04/30/3051865.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值