zoukankan      html  css  js  c++  java
  • boost::锁

    mutex类主要有两种:独占式与共享式的互斥量。
    1、独占式互斥量:
    mutex: 独占式的互斥量,是最简单最常用的一种互斥量类型
    try_mutex: 它是mutex的同义词,为了与兼容以前的版本而提供
    timed_mutex: 它也是独占式的互斥量,但提供超时锁定功能
    2、递归式互斥量: recursive_mutex: 递归式互斥量,可以多次锁定,相应地也要多次解锁 recursive_try_mutex: 它是recursive_mutex 的同义词,为了与兼容以前的版本而提供 recursive_timed_mutex: 它也是递归式互斥量,基本功能同recursive_mutex, 但提供超时锁定功能
    3、共享式互斥量: shared_mutex: multiple-reader/single-writer 型的共享互斥量(又称读写锁)。 mutex:有lock和unlock方法, shared_mutex:有lock和unlock方法外,还有shared_lock和shared_unlock方法
    boost::recursive_mutex 在一个线程中在锁中需要再次获得锁的情况,就需要使用重入锁。
    boost::recursive_mutex::scoped_lock<boost::recursive_mutex > lock(g_mutex);
    lock模板类
    1、独占锁:
    boost::unique_lock<T>,其中T可以mutex中的任意一种。
    2、共享锁:
    boost::shared_lock<T>,其中的T只能是shared_mutex类。
    读写锁
    typedef boost::shared_lock<boost::shared_mutex> readLock;//读锁,被锁后仍允许其他线程执行同样被shared_lock的代码。
    typedef boost::unique_lock<boost::shared_mutex> writeLock;//写锁,被锁后不允许其他线程执行被shared_lock或unique_lock的代码。
    
    
    lock_guard 独占锁,自定加锁解锁,类似于智能指针。
    boost::mutex mutex;  
    boost::lock_guard<boost::mutex> lock(mutex);
    
    
    unique_lock 独占锁,自定加锁解锁,类似于智能指针。
    boost::mutex mutex;  
    boost::unique_lock<boost::mutex> lock(mutex);  
  • 相关阅读:
    WiFi QC 自动测试:ixChariot API初探
    WiFi QC 自动测试:Qt控制无线路由器
    树莓派实现只有一个按键的播放器(2)
    树莓派变身路由器
    树莓派实现一个下载机
    对于AP中为什么有4个WEP KEY的分析
    备份U盘分区表,未雨绸缪
    根文件系统理解
    kernel(一)编译体验
    kernel(二)源码浅析
  • 原文地址:https://www.cnblogs.com/osbreak/p/14508399.html
Copyright © 2011-2022 走看看