0

当我在方法中运行主线程public static void main时,线程在方法完成时终止。我没有做任何明确的事情来关闭线程。为什么那么在的情况下ExecutorService。我们有一个 shutdown() 方法?为什么我们不能让ExecutorService 运行管理的线程完成?

4

1 回答 1

0

调用shutdown方法只是意味着executor不会接受新的任务。您可以为提交给执行程序的正在运行的任务(运行完成)设置一个超时时间。

executor.shutdown();
try {
    //blocks until all tasks have finished or timeout occurs
    executor.awaitTermination(TimeUnit.MICROSECONDS , Long.MAX_VALUE);
} catch (InterruptedException e) {
  //Take some action at least Thread.currentThread().interrupt();
}
于 2013-07-27T16:00:01.810 回答