虚拟泥猴桃

文章
5
资源
0
加入时间
2年10月24天

AQS之CyclicBarrier源码解析

我们在前面的reentrantlock,semaphore和countDownLatch中都能看到AQS的addWaiter()方法,是构建同步等待队列的双向链表的。first变为thread1所在的node节点,再次循环进入transferForSignal()方法,将thread1所在的node入队同步队列。我们看到先是通过cas操作将node(thread0)节点的waitStatus又-2变为0,然后看到了我们熟悉的enq()方法可知道,此时同步队列已经构建完成,thread0所在的节点