java
闪电是只猫
这个作者很懒,什么都没留下…
展开
-
深入理解AbstractQueuedSynchronizer(一)
AbstractQueuedSynchronizer简介AbstractQueuedSynchronizer提供了一个FIFO队列,可以看做是一个可以用来实现锁以及其他需要同步功能的框架。这里简称该类为AQS。AQS的使用依靠继承来完成,子类通过继承自AQS并实现所需的方法来管理同步状态。例如ReentrantLock,CountDownLatch等。本篇文章基于JDK1.8来介绍,该类有许多实现类原创 2017-04-08 01:09:16 · 2505 阅读 · 1 评论 -
深入理解AbstractQueuedSynchronizer(二)
在上篇文章深入理解AbstractQueuedSynchronizer(一)中,通过ReentrantLock详细介绍了AQS独占模式的实现,本文通过工具类CountDownLatch来分析一下共享功能的实现。CountDownLatch是什么CountDownLatch是在java1.5被引入的,跟它一起被引入的并发工具类还有CyclicBarrier、Semaphore、ConcurrentHa原创 2017-04-08 01:18:05 · 516 阅读 · 0 评论 -
深入理解AbstractQueuedSynchronizer(三)
前两篇文章中分析了AQS的独占功能和共享功能,AQS中还实现了Condition的功能。本文将通过ReentrantLock来分析在AQS中Condition的实现。Condition介绍Condition是在JDK1.5中才出现的,它可以替代传统的Object中的wait()、notify()和notifyAll()方法来实现线程间的通信,使线程间协作更加安全和高效。Condition是一个接口,原创 2017-04-08 01:21:02 · 1129 阅读 · 0 评论