![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java.util.concurrent 并发包
Jennire_Q
热爱技术,喜欢学习
展开
-
Exchanger 线程之间交换数据
Exchanger是用于线程之间交换数据的工具类,它提供一个同步点,在这个同步点,两个线程可以彼此交换数据。这两个线程通过exchange方法,当两个线程都到达同步点时,这两个线程就可以交换数据,将本线程生产出来的数据传递给对方。注意:Exchanger只能在两个线程之间交换数据,不支持更多的线程。当线程A调用了Exchanger对象的exchange()方法后,会陷入阻塞状态,直到线程B也调用了...原创 2018-06-22 17:18:31 · 236 阅读 · 0 评论 -
同步屏障CyclicBarrier
CyclicBarrier要做的事就是让一组线程到达一个屏障是被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续运行。CyclicBarrier默认的构造方法是CyclicBarrier(int parties), 其参数表示屏障拦截的线程数量,每个线程调用await方法告诉CyclicBarrier我已经到达了屏障,然后当前线程被阻塞。CyclicBarrier 是N...原创 2018-06-22 17:19:54 · 302 阅读 · 0 评论 -
CountDownLatch控制多个线程的执行
需求:多个线程同时工作,然后其中几个线程可以随意并发,但是有一个线程要等待之前几个线程并发执行的结果,才能开始执行, 举例:开启多个线程下载一个文件,每个线程固定下载一段,最后由一个线程来拼接之前的线程下载的结果,那么这个时候我们就可以使用CountDownLatch来实现以上的需求。CountDownLatch 是Concurrent包中的一个辅助类,可以把他看成是一个计数器,其内部维护着一个c...原创 2018-06-22 17:22:06 · 2697 阅读 · 1 评论