循环栅栏,用来进行线程协作,等待线程满足某个计数。构造时设置计数个数。
与CountdownLatch比较,CyclicBarrier是可以重用的。CountdownLatch每次都要创建新的对象,计数个数一旦设置也不能修改。
- public static void main(String[] args) {
- ExecutorService executorService = Executors.newFixedThreadPool(2);
- CyclicBarrier cyclicBarrier = new CyclicBarrier(2);
- executorService.submit(() -> {
- log.debug("task1 begin...");
- try {
- Thread.sleep(1000);
- cyclicBarrier.await();
- } catch (InterruptedException | BrokenBarrierException e) {
- e.printStackTrace();
- }
- log.debug("task1 end...");
- });
- executorService.submit(() -> {
- log.debug("task2 begin...");
- try {
- Thread.sleep(2000);
- cyclicBarrier.await();
- } catch (InterruptedException | BrokenBarrierException e) {
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |