CountDownLatch
作用:等待一个或多个线程执行完成;
使用:
CountDownLatch cdl = new CountDownLatch(3);
cdl.await();
CyclicBarrier
作用:同步屏障,让多个线程到达屏障点时被阻塞,直到最后一个线程到达时才继续运行;
和CountDownLatch区别:功能更强大,可以重置计数器;
使用:
CyclicBarrier cb = new CyclicBarrier(3);
cdl.await();
Samaphore
作用:控制并发访问资源的线程数量,通过acquire阻塞获取许可证,release释放许可证;
使用:
Samaphore s = new Samaphore(3);
s.aquire(); s.release();
Exchanger
作用:用于线程间交换数据,一个线程执行exchange方法,会一直等待另一个线程执行exchange方法从而交换两个线程的数据;
使用:
Exchanger<String> e = new Exchanger<String>();
e.exchange("xxx");
网友评论