常用工具类"/>
juc包下四大常用工具类
1.闭锁CountDownLatch public CountDownLatch(int count):需要等待的线程个数 public void countDown() : 等待的计数器减一 public void await() throws InterruptedException: 调用await方法的线程会阻塞直到计数器值减为0CountDownLatch的对象当计数器值减为0时,不可恢复。2.循环栅栏CyclicBarrier public CyclicBarrier(int parties, Runnable barrierAction) parties:同时等待的线程个数 barrierAction:恢复执行之前,随机挑选一个线程执行任务CyclicBarrier值可以恢复3.Exchanger-线程交换器 两两线程配对后交换数据再同时恢复执行。 若线程调用Exchanger.exchange(),缓冲区只有一个线程,则当前线程阻塞 直到有另一个线程调用Exchanger.exchange()4.Semaphore-信号量 public Semaphore(int permits) permits表示许可个数(同时控制的资源个数) acquire()获取许可 release()释放许可
信号量的代码测试;
package Chat;import java.util.concurrent.Semaphore; import java.util.concurrent.TimeUnit;//工人工作任务 class SemaphoreTask implements Runnable{private Semaphore semaphore;public SemaphoreTask(Semaphore semaphore) {this.semaphore = semaphore;}@Overridepublic void run() {try {semaphore.acquir
更多推荐
juc包下四大常用工具类
发布评论