首页 > 试题广场 >

当我们需要所有线程都执行到某一处,才进行后面的的代码执行我们

[单选题]
当我们需要所有线程都执行到某一处,才进行后面的的代码执行我们可以使用?
  • CountDownLatch
  • CyclicBarrier
  • Semaphore
  • Future
CyclicBarrier是多个线程互相等待。
CountDownLatch是所有countdown()减少到0后,所有await()线程执行。。所以cyclicBarrier也可以达到上述要求吧
发表于 2020-02-14 16:25:47 回复(1)
CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。 CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成了任务,然后在CountDownLatch上等待的线程就可以恢复执行任务。
发表于 2020-11-23 14:03:26 回复(0)

CountDownLatch是一个非常实用的多线程控制工具类。常用的就下面几个方法:

CountDownLatch(int count) //实例化一个倒计数器,count指定计数个数 countDown() // 计数减一 await() //等待,当计数减到0时,所有线程并行执行


发表于 2019-07-31 17:15:34 回复(0)
记一下
发表于 2020-03-16 07:10:08 回复(0)