我是靠谱客的博主 自觉短靴,最近开发中收集的这篇文章主要介绍C++ boost共享锁 unique_lock shared_lock,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

最后

以上就是自觉短靴为你收集整理的C++ boost共享锁 unique_lock shared_lock的全部内容,希望文章能够帮你解决C++ boost共享锁 unique_lock shared_lock所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部