闭锁(CountDownLatch)源码

成员sync
所含方法: await(),await(long, TimeUnit),countDown,getCount
内部静态类Sync extends AbstractQueuedSynchronizer
1、两个公开方法,await和countDown,不存在获取资源的操作,在初始化的时候已经设置state。tryAcquireShared只是做检查操作,如果等于0,就返回1(表示获取成功)
countDown做releaseShared操作,一直release到state等于0,就会唤醒AQS里面的第一个Node,该Node获取资源又成功(因为 tryAcquireShared里面不更新state,只检查 ),调用setHeadAndPropagate进行唤醒的传播,直到所有Node全部醒完。
 

猜你喜欢

转载自xussen.iteye.com/blog/2007379