CountDownLatch,CyclicBarrier,Semaphore的使用
2016-09-04 09:58
525 查看
什么时候使用CountDownLatch
CountDownLatch原理和示例
Semaphore信号量的原理和示例
CyclicBarrier的用法
CyclicBarrier 和 CountDownLatch 在用法上的不同:1、CountDownLatch 适用于一组线程和另一个主线程之间的工作协作。一个主线程等待一组工作线程的任务完毕才继续它的执行是使用 CountDownLatch 的主要场景;CyclicBarrier 用于一组或几组线程,比如一组线程需要在一个时间点上达成一致,例如同时开始一个工作。另外,CyclicBarrier 的循环特性和构造函数所接受的 Runnable 参数也是 CountDownLatch 所不具备的。
2、CountDownLatch和CyclicBarrier都能够实现线程之间的等待,只不过它们侧重点不同:CountDownLatch一般用于某个线程A等待若干个其他线程执行完任务之后,它才执行;而CyclicBarrier一般用于一组线程互相等待至某个状态,然后这一组线程再同时执行;另外,CountDownLatch是不能够重用的,而CyclicBarrier是可以重用的。
3、Semaphore其实和锁有点类似,它一般用于控制对某组资源的访问权限。
相关文章推荐
- CountDownLatch、CyclicBarrier、Semaphore共同之处与区别以及各自使用场景
- 使用Java辅助类(CountDownLatch、CyclicBarrier、Semaphore)并发编程
- 【Java多线程】CountDownLatch、CyclicBarrier和Semaphore使用
- Java并发编程之2——同步工具类的使用(CountDownLatch,CyclicBarrier,BlockungQueue,Semaphore)
- java.util.concurrent 下的Semaphore CyclicBarrier CountDownLatch 分析使用
- 多线程并发常用类:condition,semaphore,CyclicBarrier,countdownlatch,exchanger使用整理
- Java中CountDownLatch,CyclicBarrier以及Semaphore的使用场景
- 黑马程序员-Condition条件对象、Semaphore、CyclicBarrier、倒计时门栓 CountDownLatch、Exchanger(实现两个线程之间数据交换
- Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
- AbstractQueuedSynchronizer在工具类ReentrantLock、Semaphore、CountDownLatch、CyclicBarrier中的应用
- Java并发编程中CountDownLatch和CyclicBarrier的使用
- java并发编程中CountDownLatch和CyclicBarrier的使用
- java并发编程中CountDownLatch和CyclicBarrier的使用
- java并发编程中CountDownLatch和CyclicBarrier的使用
- java并发之CountDownLatch、Semaphore和CyclicBarrier
- Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
- Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
- Java多线程(八)之Semaphore、CountDownLatch、CyclicBarrier、Exchanger
- java并发编程中CountDownLatch和CyclicBarrier的使用 - [java]
- 黑马程序员-Semaphore、CyclicBarrier、CountDownLatch、Exchanger