zoukankan      html  css  js  c++  java
  • std::lock_guard 与 std::unique_lock

    std::lock_guard 与 std::unique_lock 对 mutex 进行自动加解锁。
    mutex m;
    void fun()
    {
       unique_lock<mutex> mlock(m);
    }
    unique_lock mlock(m);
    线程没有 m 的所有权,根据块语句的循环实现自动加解锁。
    线程根据 m 属性,来判断是否可以加锁、解锁。
    void fun()
    {
       lock_guard<mutex> mlock(m);
    }
    lock_guard mlock(m);
    线程拥有 m 的所有权,实现自动加解锁。
    线程读取 m 失败时,则一直等待,直到读取成功。
    线程会把 m 一直占有,直到当前线程完成才释放,其它线程才能访问。
  • 相关阅读:
    Java线程面试题 Top 50
    抽象类
    this和super的区别
    引用传递
    【代码】递归调用
    java异常
    抽象类 final
    sublime使用技巧
    zabbix表达式
    tcpdump
  • 原文地址:https://www.cnblogs.com/osbreak/p/10092608.html
Copyright © 2011-2022 走看看