ExecutorService线程池创建后如果需要数据完成后继续执行主线程。
网上查询出的答案都是死循环用isTerminated方法判断是否已完成所有线程,多次尝试这种方法都无法关闭,主线程就停了不往下执行。原因:isTerminated方法执行前必须使用shutdown方法否则无法为true。
1 ExecutorService exe = Executors.newFixedThreadPool(50);// 设置线程池 2 exe.shutdown();// 禁止新建线程,老线程继续执行 3 while (true) { 4 if (exe.isTerminated()) { 5 break; 6 } 7 Thread.sleep(1000); 8 }
