`
xussen
  • 浏览: 30024 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

闭锁(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全部醒完。
 
分享到:
评论
2 楼 xussen 2014-03-12  
zhenglu119 写道
闭锁的实现主要基于AQS的实现,简单的使用AQS的state设置,lz可以介绍一点AQS的实现。

http://xussen.iteye.com/blog/2007374
以后会继续完善,谢谢~
1 楼 zhenglu119 2014-03-05  
闭锁的实现主要基于AQS的实现,简单的使用AQS的state设置,lz可以介绍一点AQS的实现。

相关推荐

Global site tag (gtag.js) - Google Analytics