为什么主线程没有关闭方法

时间:2013-07-27 15:31:49

标签: main shutdown executorservice

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

1 个答案:

答案 0 :(得分:0)

调用shutdown方法只意味着执行程序不会接受任何新任务。您可以对提交给执行程序的正在运行的任务(运行完成)给出超时。

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();
}