【发布时间】:2014-08-03 04:20:35
【问题描述】:
在 Java 中,您可以使用 Thread.join() 等待线程退出
是否有类似的方法可以让您等待线程列表中的任何线程退出?
这类似于在任何子进程退出时返回的wait(2) Unix 系统调用。
【问题讨论】:
-
使用某种
Executor并调用invokeAll,这将阻塞直到所有任务完成 -
这里是 code 使用 CoundDownLatch。
-
从设计的角度来看,我不太理解这一点。等待 any 线程。假设你启动了 5 个线程,你想等待 any 线程退出?
CountdownLatch确实可以使用,您可以最初将计数设置为1并减少所有线程中的计数,但是为什么呢?
标签: java multithreading