java - 如何等待所有线程(可变数量的线程)完成并继续 Main?

标签 java multithreading

我将根据用户输入在 for 循环中创建许多线程。因此我无法为他们指定名称。有没有办法等待所有这些都完成才能继续我的主线程?我希望它们能够从 for 循环中完成。我知道我需要使用联接,但是有很多线程,我将如何使用它?或者还有别的办法吗?它将是这样的:

for(int i = 0; i<inputs.size(); i++)
  new SimpleThread(parameters).start();

仅继续主线程,其他线程已完成。

我该怎么做?

最佳答案

将线程存储在 List<Thread> 中,然后迭代列表并使用 thread.join()

您还可以查看java.util.concurrent艾滋病。 CyclicBarrier CountDownLatch (如其他人指出的)例如。

关于java - 如何等待所有线程(可变数量的线程)完成并继续 Main?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4523050/

相关文章:

java - 如何使用 servlet 运行长时间运行的进程

java - java中的Jar异常

java - 主线程不等待订阅者完成响应式(Reactive)订阅者的任务

java - Socket.connect 关闭后但连接前

java - 线程在从空 DataInputStream 读取 UTF 时卡住

Java,阻塞队列

c++ - Boost.asio 和 UNIX 信号处理

java - 根据数量而不是时间排序

java - 根据字符串的宽度绘制动态按钮

java - JDBC setNull() 与 Oracle "is null"产生不同的结果