没腿的鸟 发表于 2024-6-11 10:12:27

59.CyclicBarrier

循环栅栏,用来进行线程协作,等待线程满足某个计数。构造时设置计数个数。
与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企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 59.CyclicBarrier