我正在尝试运行一个基于 .我使用此服务来替换虚拟循环。全局思想是让首先让一个(调度程序)执行一个(可运行的)。然后,由于某种原因,可运行对象可能会或可能不会在其他任务(任务器)上计划任务。现在的问题是:scheduleAtFixedRate
ExecutorService
while
ExecutorService
Runnable
ExecutorService
当我停止程序时,我该如何停止所有这些线程?
我已经尝试了一下,找不到合适的解决方案。我尝试了两件事: ,守护进程线程不是我想要的,我希望调度程序继续运行,直到我停止程序。关闭钩子乍一看不是一个好的解决方案,但经过一些研究,它似乎有效。DaemonThread
ShutdownHook
我只是不明白为什么。
问题是,如果我使用命令执行代码并使用 停止它,则会运行 ShutdownHook,但是如果我在 IDE(VScode) 中运行 java 代码并使用调试器工具停止它,则不会执行它。所以还有两个问题:mvn exec:java -Dexec.mainClass="com.goodbook.App"
Ctrl+C
为什么执行关机钩子
?
为什么使用命令行运行和使用 IDE 运行之间的行为不同
首先,我将为您提供两段代码:应用程序和 Task 类。
慕丝7291255
相关分类