Java CyclicBarrier、CountDownLatch 和 wait() 有什么不同?


1. 问题

  • CyclicBarrier、CountDownLatch 和 wait() 有什么不同?

2. 解答

  • wait():是 Object 类提供的方法,能让当前线程停止执行,并释放占有的资源,线程从运行状态转换为等待状态;
  • CyclicBarrier(int n, Runnable barrierAction):是 CyclicBarrier 类的构造方法,用于当 n 个线程到达屏障后,优先执行下面的线程 barrierAction,再执行其他线程,方便处理更复杂的业务场景;
  • CountDownLatch(int count):是 CountDownLatch 类的构造方法,指一个线程执行到一半被打断了,要等待其他 n 个线程运行结束后,才能再继续这个线程的代码;
  • 关于 wait() 方法的使用,详见:Java 线程交互
  • 关于 CountDownLatch 和 CyclicBarrier 的使用,详见:Java 并发包
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页