本章主要介绍了使用JDK并发包里的CountDownLatch、CyclicBarrier和Semaphore工具类来控制并发流程以及使用Exchanger工具类在线程间交换数据。
CountDownLatch
CountDownLatch允许一个或多个线程等待其他线程完成操作。
1 | public class JoinCountDownLatchTest { |
1 | /** |
CyclicBarrier
CyclicBarrier的字面意思是可循环使用(Cyclic)的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续运行。
1 | /** |
Semaphore
Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。
1 | /** |
Exchanger
Exchanger(交换者)是一个用于线程间协作的工具类。Exchanger用于进行线程间的数据交换。
1 | public class ExchangerTest { |