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

Ada*_*Ada 2 java multithreading

我将根据for循环中的用户输入创建多个线程.因此我无法为它们指定名称.有没有办法等待所有人完成继续我的主线程?我想让他们完成那个for循环.我知道我需要使用连接但是有很多线程,我将如何使用它?或者还有另一种方式吗?它会是这样的:

for(int i = 0; i<inputs.size(); i++)
  new SimpleThread(parameters).start();
Run Code Online (Sandbox Code Playgroud)

继续只有主线程,其他人完成.

我怎样才能做到这一点?

Boz*_*zho 7

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

你也可以看看java.util.concurrent艾滋病.CyclicBarrier或者CountDownLatch(如其他人所示).


Spi*_*nim 5

用一个java.util.concurrent.CountDownLatch.将其与参数一起传递.

还要考虑使用a java.util.concurrent.Executors.newFixedThreadPool()来管理线程生命周期(启动,停止线程).

  • 你是哈利波特吗? (4认同)