2022
05-17
05-17
Java中CyclicBarrier和CountDownLatch的用法与区别
目录前言CountDownLatch例子CyclicBarrier构造函数例子两者区别前言CyclicBarrier和CountDownLatch这两个工具都是在java.util.concurrent包下,并且平时很多场景都会使用到。本文将会对两者进行分析,记录他们的用法和区别。CountDownLatchCountDownLatch是一个非常实用的多线程控制工具类,称之为“倒计时器”,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。CountDownLatch是通过一个计数器来实现的,计数器...
继续阅读 >
2018.12.12更新在学习了CyclicBarrier之后发现,CyclicBarrier也可以实现跟CountDownLatch类似的功能,只需要在它的parties中多设置一个数,将主线程加入等待队列就可以了:publicstaticvoidmain(String[]args){ExecutorServicepool=Executors.newCachedThreadPool();intsize=3;//设置参数时,线程实际执行数size+1,将main线程也加到等待队列中CyclicBarriercyclicBarrier=newCyclicBarrier(size+1);...