AQS源码分析以及基于AQS之上的各种实现,带你阅读源码
AQS本质是一个双向队列,线程被包装成了一个个节点,节点在队列里面通过自旋一直尝试获取资源
AQS有两个队列 一个同步队列,一个条件队列
其实我感觉这个队列框架 和重量级锁的框架很像 有entrylist 代表着正在等待资源的线程队列,是双向的,entrylist叫等待队列,然后当获得资源的线程,使用了wait以后就进入了waitset,这里面的等待线程,就要等待一定条件后,然后被唤醒,再去entrylist的头部或者尾部进行争夺资源。waitset又叫条件等待队列,条件满足了,就被唤醒去等待队列。
这些
原创
2021-04-03 00:08:51 ·
168 阅读 ·
0 评论