CountDownLatch.await()
时间: 2023-10-27 11:36:58 浏览: 1709
CountDownLatch源码解析之await()
CountDownLatch.await() 是一个方法,它会阻塞当前线程,直到 CountDownLatch 的计数器为 0。在 CountDownLatch 对象被创建时,需要指定一个计数器初始值,每次调用 CountDownLatch 的 countDown() 方法会将计数器减 1,直到计数器为 0 时,所有阻塞在 await() 方法上的线程都会被唤醒。
在实际应用中,CountDownLatch 可以用来实现线程之间的协同工作。例如,一个任务需要等待多个子任务全部完成后才能继续执行,可以使用 CountDownLatch 来实现。在任务启动前,先创建一个 CountDownLatch 对象,并将计数器设置为子任务的数量。每个子任务完成时,调用 countDown() 方法将计数器减 1。在主任务中,调用 await() 方法阻塞等待,直到所有子任务都完成,计数器为 0,才能继续执行。
阅读全文