假设我想要运行 n 个线程,并且我想在所有线程完成时输出一些内容。以下是我尝试过的方法:
//This uses a ThreadGroup called tGroup
while(tGroup.activeCount() > 0) {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
接下来只是一个 while 循环和一个存储线程的 ArrayList
boolean alive = true;
int count = 0;
while (alive) {
count = 0;
for (int i = 0; i < numThreads; i++) {
if (!threads.get(i).isAlive()) {
count++;
}
if (count == numThreads) {
alive = false;
break;
}
}
}
最佳答案
遍历所有线程并join()
每个线程。 join()
将阻塞任何未完成的线程,直到它完成。
关于java - 如何在所有线程完成时立即做某事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9492547/