首页 > 编程语言 > 详细

Java常用的并发工具类:CountDownLatch、CyclicBarrier、Semaphore、Exchanger

时间:2020-03-19 11:55:51      阅读:52      评论:0      收藏:0      [点我收藏+]

1、CountDownLatch 等待多线程完成

它的构造函数接收一个int参数作为计数器,想等待N个点,就传入N。当调用CountDownLatch的countDown()方法时,N就会减1,直至减为0。

使用await()方法等待,当N的值变为0时,执行await的线程继续执行

2、CyclicBarrier 同步屏障(可以理解为可循环的屏障)

可循环使用的屏障,它要做的事情就是让一组线程到达屏障时被阻塞,直到最后一个线程到达屏障时,屏障才会打开,所有被阻塞的线程才会继续执行;

默认构造方法接收一个int参数,表示屏障拦截的线程数,每个线程调用await方法告诉CyclicBarrier 已经达到屏障了,然后当前线程阻塞。

3、CountDownLatch   VS  CyclicBarrier 

CountDownLatch的计数器只使用一次,而CyclicBarrier 的计数器可以Reset方法重置,重复使用

4、Semaphore  控制线程并发数的信号量

控制有限个线程使用资源。构造方法接收一个int参数N,表示最大并发量,每个线程使用资源前调用acquire()方法获取权限,使用完后调用release()方法释放权限;

5、Exchanger线程间的数据交换

提供一个同步点,在这个同步点,两个线程可以交换彼此的数据

Java常用的并发工具类:CountDownLatch、CyclicBarrier、Semaphore、Exchanger

原文:https://www.cnblogs.com/blackdd/p/12522692.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!