CountDownLatch是Java中一个同步工具类,用于控制多个线程的执行顺序。它可以让某个线程一直等待,直到其他线程完成各自的操作后再继续执行。
CountDownLatch通过一个计数器来实现,计数器的初始值为线程数量,每当一个线程完成任务后,计数器的值就会减1,当计数器的值变为0时,等待的线程就会被唤醒继续执行。
图片来源:javatpoint
例如,在某个场景下需要启动5个线程同时执行某个任务,但是其中有一个线程必须要在其他4个线程完成之后才能执行,可以使用CountDownLatch来实现这个需求。
在此例中,创建一个初始值为5的CountDownLatch,然后启动5个线程执行任务,在其中4个线程执行结束后,调用CountDownLatch的countDown()方法将计数器减1,最后在第5个线程中调用await()方法等待其他线程执行完毕后再继续执行。