是的,你理解正确。
CountDownLatch按照闩锁原理工作,主线程将等待直到门打开。一个线程等待n个线程(创建时指定)
CountDownLatch。
任何调用,通常是应用程序的主线程,都
CountDownLatch.await()将等待直到计数达到零或被另一个线程中断为止。所有其他线程在
CountDownLatch.countDown()完成或准备就绪时都需要通过调用来递减计数。
一旦计数达到零,等待线程就会继续。的缺点/优点之一
CountDownLatch是不可重用:一旦计数达到零,就不能再使用
CountDownLatch了。
编辑:
使用
CountDownLatch当一个线程(比如主线程),需要等待一个或多个线程来完成,才能继续处理。
CountDownLatch在Java 中使用的经典示例是使用服务体系结构的服务器端核心Java应用程序,其中多个线程提供了多个服务,并且在所有服务都成功启动之前,该应用程序无法开始处理。
PS OP的问题有一个非常简单的示例,因此我没有列出。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)