java线程和主线程

use*_*196 9 java multithreading

什么是使主线程等到所有线程完成的最佳方法?

for(int i=0;i<n;i++){
   Thread t=new Thread();
   t.start();

}

//wait for all threads to finish

Pet*_*rey 19

创建一个列表并等待所有.

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();
Run Code Online (Sandbox Code Playgroud)

但是,使用ExecutorService可以更好地处理线程池.

ExecutorService es = Executors.newCachedThreadPool();
for(int i=0;i<n;i++)
   es.submit(new Task(n));
es.shutdown();
es.awaitTermination(timeout, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)