zoukankan      html  css  js  c++  java
  • 多线程&读写锁问题

    1 读写锁定义

      读写锁适用于多个读,单个或者少量写操作,它是一种特别的互斥锁;

    2 示例代码如下:

    3 说明:

      3.1 写锁锁定时,其他所有读写操作,必须等待;

        上图中的30行打开时候,输出如下,全部处于等待阶段;

          in readThread:139786146199296
          in readThread:139786154592000
          in readThread:139786137806592
          in writeThread:139786121021184
          in readThread:139786129413888

      3.2 读锁,其他读操作不影响,但是写操作等待;

        上图31行打开,输出如下,读操作不受影响,写操作等待;

          in readThread:139932255573760
          in readThread:139932238788352
          tid is: -2090682624, read
          in readThread:139932247181056
          tid is: -2082289920, read
          tid is: -2073897216, read
          in readThread:139932230395648
          tid is: -2099075328, read
          in writeThread:139932222002944

      3.3 非阻塞式读写锁;

        使用pthread_rwlock_tryrdlock代替12行pthread_rwlock_rdlock,不会进行阻塞,但是会返回错误码;

        

  • 相关阅读:
    「SHOI2015」脑洞治疗仪
    LOJ 数列分块入门 8
    CF932F Escape Through Leaf
    NOIP2021游记总结
    [HEOI2016/TJOI2016]序列
    【模板】动态树(Link Cut Tree)
    LG P2839 [国家集训队]middle
    JZOJ 7377.欢乐豆
    JZOJ 7392. 【2021.11.17NOIP提高组联考】数 (ds)
    LOJ 数列分块入门 6
  • 原文地址:https://www.cnblogs.com/hanlaomo/p/14272899.html
Copyright © 2011-2022 走看看