08-等待多个并发事件
3.3 等待多个并发事件
Java并发API提供了一个类 CountDownLatch
,它可以使多个线程等待直到一组操作完成。实例化这个类需要一个整型参数,该参数代表了线程希望等待的操作的个数。当一个线程希望等待这些操作执行完成时,可以调用 CountDownLatch
对象的 await()
,这个方法会将调用线程休眠,直到所等待的操作全部结束。而当一个操作结束时,应该调用 CountDownLatch
对象的 countDown()
方法,该方法会将 CountDownLatch
对象内部的属性计数器的值减1,表示一个操作的完成。当 CountDownLatch
对象内部的计数器的值为0时,表示所有操作都完成了。这时, CountDownLatch
对象将唤起所有因调用其 await()
方法而休眠的线程。
本节将介绍如何使用 CountDownLatch
类来完成一个视频会议系统。这个视频会议系统将在所有与会者抵达后开始。