闭锁(CountDownLatch)源码

本文深入探讨了CountDownLatch类的工作原理及其实现细节。通过分析其内部类Sync如何继承AbstractQueuedSynchronizer来实现线程等待与唤醒机制,阐述了await和countDown方法的具体作用。
成员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全部醒完。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值