CyclicBarrier和CountDownLatch区别
来源:互联网 发布:java缓存和中间件 编辑:程序博客网 时间:2024/05/29 11:42
这两天写多线程时,用到了CyclicBarrier,下意识的认为CyclicBarrier和CountDownLatch作用很像,就翻阅资料查了一下,说一下他们的区别吧
CyclicBarrier和CountDownLatch 都位于java.util.concurrent 这个包下
一、CountDownLatch用法
CountDownLatch类只提供了一个构造器:
然后下面这3个方法是CountDownLatch类中最重要的方法:
CountDownLatch, 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
输出结果:
id:1
线程组任务1结束,其他任务继续
id:0
线程组任务0结束,其他任务继续
id:2
线程组任务2结束,其他任务继续
id:3
线程组任务3结束,其他任务继续
id:4
线程组任务4结束,其他任务继续
线程执行结束。。。。
线程在countDown()之后,会继续执行自己的任务,而CyclicBarrier会在所有线程任务结束之后,才会进行后续任务,具体可以看下面例子。
二、CyclicBarrier用法
CyclicBarrier提供2个构造器:
参数parties指让多少个线程或者任务等待至barrier状态;参数barrierAction为当这些线程都达到barrier状态时会执行的内容。CyclicBarrier中最重要的方法就是await方法
举例说明
输出结果:
id:1
id:2
id:4
id:0
id:3
线程组执行结束
线程组任务3结束,其他任务继续
线程组任务1结束,其他任务继续
线程组任务4结束,其他任务继续
线程组任务0结束,其他任务继续
线程组任务2结束,其他任务继续
0 0
- CyclicBarrier和CountDownLatch区别
- CyclicBarrier和CountDownLatch区别
- CyclicBarrier和CountDownLatch区别
- CyclicBarrier和CountDownLatch区别
- CountDownLatch和CyclicBarrier的区别
- CountDownLatch和CyclicBarrier的区别
- CountDownLatch和CyclicBarrier的区别
- CountDownLatch和CyclicBarrier的区别
- CountDownLatch和CyclicBarrier的区别
- CountDownLatch和CyclicBarrier的区别
- CountDownLatch和CyclicBarrier的区别
- CountDownLatch、CyclicBarrier和Semaphore区别
- CountDownLatch和CyclicBarrier的区别
- CountDownLatch和CyclicBarrier的区别
- CountDownLatch和CyclicBarrier的区别
- CyclicBarrier和CountDownLatch的区别
- CyclicBarrier和CountDownLatch的区别
- CountDownLatch和CyclicBarrier的区别
- Weave实现跨主机容器互联
- 《c程序设计语言》读书笔记(五)——指针与数组
- 从程序员到数据科学家:SAS 编程基础 (02)
- 螺旋螺旋螺旋稳
- 如何辨别是否是纯数字类型
- CyclicBarrier和CountDownLatch区别
- POJ 3259 Wormholes (BellmanFord判断图是否存在负环)
- 小项目第二天图书的现实完成
- Python打包与发布的概念总结
- POJ
- gcc5.3.0安装
- LeetCode 8: String to Integer (atoi) (python)
- SIFT特征提取算法总结
- 从程序员到数据科学家:SAS 编程基础 (03)