我使用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!");

但这总是卡在awaitTermination上。怎么了?

最佳答案

正如Peter所指出的,必须首先调用shutdown()

资料来源:javadoc

关于java - ExecutorService awaitTermination卡住,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7059129/

10-09 08:46