我想在 Java 中同时生成 200 个线程。我现在正在做的是进入一个循环并创建 200 个线程并启动它们。在这 200 个完成后,我想生成另外 200 个线程集等等。
这里的要点是我生成的前 200 个线程需要在生成下一组之前完成。我尝试了下面的代码,但它不起作用
for(int i=0;i<200;i++){
Thread myThread = new Thread(runnableInstance);
myThread.start();
}
for(int i=0;i<200;i++){
Thread myThread = new Thread(runnableInstance);
myThread.start();
}
注意:我有意放置了两次 for 循环,但我想要的效果并没有发生,因为第二个 for 循环是在第一组线程结束执行之前执行的。
请指教
最佳答案
您应该保留一份您创建的线程的列表。然后,一旦您启动了所有这些,您就可以遍历列表并对每个列表执行 join
。当连接循环完成时,您的所有线程都将运行完成。
List<Thread> threads = new List<Thread>();
for(int i=0;i<200;i++){
Thread myThread = new Thread(runnableInstance);
myThread.start();
threads.add(myThread);
}
//All threads are running
for(Thread t : threads) {
t.join();
}
//All threads are done
关于java - Java 中的线程作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2868005/