【发布时间】:2013-01-29 21:29:57
【问题描述】:
我有这样的执行者服务:
ExecutorService exec = Executors.newFixedThreadPool(4);
for(int i=0; i<4;i++) {
Consumer consumer = new Consumer();
exec.execute(new ConsumerstartUpThread(consumer));
}
ConsumerStartUpThread 实现了 runnable 并且它的 run 方法具有巨大的功能,这需要调用其他几个 API。现在,当我在调试模式下运行代码时,任务就完成了。当我正常运行它时,任务不完整,线程被终止。不是线程会等到所有任务完成吗?为什么他们没有完成任务就被解雇了?
【问题讨论】:
-
如果您进一步解释“被终止”是什么意思,它可能有助于发现问题。整个JVM都关闭了吗? ExecutorService 是否关闭?线程是阻塞还是中断还是什么?
标签: java multithreading executorservice