有什么区别
ExecutorService eService = Executors.newFixedThreadPool(2);
eService.execute(new TestThread6());
eService.execute(new TestThread6());
eService.execute(new TestThread6());
eService.awaitTermination(1, TimeUnit.NANOSECONDS);
eService.shutdown();
和
eService.shutdown();
eService.awaitTermination(1, TimeUnit.NANOSECONDS);
我不太懂shutdown()
。此方法不等待先前提交的任务完成执行。这是否意味着 shutdown()
可以终止已提交但未完成的任务?我尝试了一些例子,他们没有证明这一点,请给我一个例子。
最佳答案
你应该先调用shutdown
。否则,您可能会等待很长时间,因为 awaitTermination
实际上并没有关闭您的执行程序。
如果你想等待任务完成,而不是等待执行器关闭,那么你应该使用invokeAll
。
关于java - shutdown 和 awaitTermination 哪个第一次调用有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18425026/