ExecutorService awaitTermination卡住了

Kev*_*vin 20 java multithreading executorservice java.util.concurrent

我用一个固定大小的线程池Executors.newFixedThreadPool(2),我执行了10个Runnable对象.我设置断点并追踪执行.但是,fixedSizeThreadPool.awaitTermination()即使完成了所有任务,也不允许我继续.

基本上:

ExecutorService fixedThreadPool = Executors.newFixedThreadPool(2);
for (int i = 0; i < 10; ++i) {
    fixedSizeThreadPool.execute(myRunables[i]);
}
try {
    fixedSizeThreadPool.awaitTermination(timeout, timeoutUnits);
} catch (Exception e) { }
System.out.println("done!");
Run Code Online (Sandbox Code Playgroud)

但这总是被困住awaitTermination.怎么了?

Pau*_*ora 29

正如彼得指出的那样,shutdown()必须首先召唤.

来源:javadoc