![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
并发编程
文章平均质量分 96
并发编程
会点代码的80后
这个作者很懒,什么都没留下…
展开
-
Condition原理及源码分析
Condition为我们提供了可以实现等待/通知模式。例如生产消费者模式,当生产者生产的产品达到了最大库存,则生产者会停止生产并且系统会通知消费者来进行消费;当消费者将商品全部消费完了,则消费者会停止消费等待生产者生产新的商品。可以看到Condition是一个接口,定义了实现等待/通知模式的抽象方法,具体如何实现等待、通知需要具体的实现类去实现。在AbstractQueuedSynchronizer中为我们提供了ConditionObject的内部类,它就是Condition的具体实原创 2020-08-03 21:07:07 · 294 阅读 · 0 评论 -
AQS原理及源码分析
所谓的AQS,就是AbstractQueuedSynchronizer,它提供了一种实现阻塞锁和一系列依赖FIFO队列的同步器框架。通过state的状态, 来实现acquire(加锁)和release(解锁)。state为0,表示当前没有线程获取到锁,可以竞争锁,state为1表示已有线程占有了锁。在阅读AQS源码前,我们了解AQS的类图和里面的几个主要概念以及AQS开始引入JDK的版本号和作者。可以看到AQS是在JDK1.5版本引入的,作者是大名鼎鼎的Doug Lea。从.原创 2020-07-30 09:59:35 · 182 阅读 · 0 评论