我正在编写一个多线程Java程序,我将从命令提示符运行。它有一个gui(javafx)和很多后台线程。如果我从命令提示符处按Ctrl + C,我启动程序,它会询问“终止批处理作业?是/否”,然后我点击Y然后我只是返回到提示符。但是 - 我想知道是否有可能仍然运行任何未正常终止的后台线程?
答案 0 :(得分:4)
你的"主要"代码和所有线程都在JVM
中运行。如果你终止JVM(作为进程),那么它中运行的所有内容也将被终止。
更多关于"捕捉" ctrl+c
:Catching Ctrl+C in Java
答案 1 :(得分:1)
据我所知,没有办法从命令行“捕获”或“拦截”Ctrl + C“事件”,所以你无法确定是否有任何未完成的线程并优雅地结束它们。 (令人失望,我知道)。