码迷,mamicode.com
首页 > 编程语言 > 详细

多线程与高并发(四)--ReentrantLock及AQS源码

时间:2021-02-17 14:21:25      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:mic   源码   img   子类   image   tran   --   nfa   http   

ReentrantLock源码

技术图片

 

 父子类关系:NonfairSync->Sync->AQS

AQS源码

  核心是volatile int state以及等待队列。

  • state的具体含义交给子类来定义。
    • ReentrantLock中state代表加解锁。
    • CountDownLatch中state代表需要countDown几次。
  • 内部维护了一个内部类Node(存放Thread),由Node组成了一个Thread的双向链表(等待队列)。获取到锁就移出等待队列,等待锁的释放就进入等待队列。
    • PS:入队出队操作为CAS。

 

多线程与高并发(四)--ReentrantLock及AQS源码

标签:mic   源码   img   子类   image   tran   --   nfa   http   

原文地址:https://www.cnblogs.com/liu-feng/p/14401666.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!