AQS之独占锁(结合ReentrantLock进行源码分析)
AQS结构
AQS中有一个队列(FIFO,用双向链表实现),每个请求共享资源的线程都会被封装成一个队列中的节点来实现锁的获取。
volatile int state; // 表示共享资源/同步状态,通过CAS操作来修改state值
队列中的节点Node的一些属性
属性或者一些值
SHARED
表示线程以共享的模式等待锁
EXCLUSIVE
表示线程正在以独占的方式等待锁
CANCELLED = 1
线程获取锁的请求已经取消(由于超时或者中断),具有cancelled n
原创
2020-08-05 14:36:40 ·
137 阅读 ·
0 评论