59.CyclicBarrier

打印 上一主题 下一主题

主题 531|帖子 531|积分 1593

循环栅栏,用来进行线程协作,等待线程满足某个计数。构造时设置计数个数。
与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企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

没腿的鸟

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表