gpt4 book ai didi

java - waitTermination 阻塞主线程

转载 作者:行者123 更新时间:2023-12-01 10:52:09 26 4
gpt4 key购买 nike

我有以下代码:

   ExecutorService executorService = Executors.newCachedThreadPool();
executorService.execute(() -> {
while(true) {
System.out.println("Here");
}
});

executorService.shutdown();
try {
executorService.awaitTermination(5,TimeUnit.MILLISECONDS);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Finished");

超时后 - 5 毫秒,线程停止写入消息“Here”,主线程打印“Finished”,但不会终止并毫无意义地等待。这种行为的原因是什么?

最佳答案

您所描述的行为与我的观察不符(在 Windows 上)。对我来说,池线程永远不会停止写“这里”。在中间的某个地方,主线程写入“完成”,但随后程序继续打印“此处”。主线程已终止。但线程池仍然存在。

关闭执行程序服务不会中止线程。它只是不再接受新任务并在线程完成时关闭它们。但你的任务永远不会完成。

关于java - waitTermination 阻塞主线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33804128/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com