本文介绍了java线程和主线程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使主线程等到所有线程完成的最佳方法是什么?
what's the best way to make main thread to wait until all threads are finished?
for(int i=0;i<n;i++){
Thread t=new Thread();
t.start();
}
//wait for all threads to finish
推荐答案
创建一个列表并等待所有。
Create a list and wait for the all.
List<Thread> threads = new ArrayList<Thread>();
for(int i=0;i<n;i++){
Thread t=new Thread();
t.start();
threads.add(t);
}
for(Thread t: threads) t.join();
然而,使用ExecutorService可以更好地处理线程池。
However using an ExecutorService can be a more elegant way to handle a pool of threads.
ExecutorService es = Executors.newCachedThreadPool();
for(int i=0;i<n;i++)
es.submit(new Task(n));
es.shutdown();
es.awaitTermination(timeout, TimeUnit.SECONDS);
这篇关于java线程和主线程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!