您当前的位置: 首页 >  软件工程小施同学 ar

C++ boost共享锁 unique_lock shared_lock

软件工程小施同学 发布时间:2021-08-18 17:03:53 ,浏览量:4

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

Boost提供共享锁功能,能够对读写区分加锁。

// 头文件
#include
#include

typedef boost::shared_mutex                Lock;                    
typedef boost::unique_lock    WriteLock;
typedef boost::shared_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

关注
打赏
查看更多评论
  • 4浏览

    0关注

    1135博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录