59.CyclicBarrier [复制链接]
发表于 2024-6-11 10:12:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

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

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表