CTRL-C如何与Java程序一起使用

use*_*444 11 java console shutdown-hook

当我按ctrl- c在控制台中按应用程序线程停止的顺序和关闭挂钩调用?

Ste*_*n C 9

根据javadocs,当JVM开始关闭时,以未指定的顺序调用已注册的关闭挂钩; 例如,响应CTRL-C.

应用程序线程不会以任何明确定义的方式"停止".实际上,他们可以继续正常运行,直到流程退出.

如果您希望以有序的方式关闭线程,则需要在关闭钩子中执行某些操作以使其发生.例如,一个关闭钩子可以调用Thread.interrupt()告诉工作线程停止它们正在做什么...并调用join()以确保它已经发生.


Mar*_*aux 5

我知道您可以通过添加关闭钩子来指定在击中Ctrl-C时应该发生什么.但我不确定它的顺序.

private static void createShutDownHook()
{
    Runtime.getRuntime().addShutdownHook(new Thread(new Runnable()
    {

        @Override
        public void run()
        {
            System.out.println();
            System.out.println("Thanks for using the application");
            System.out.println("Exiting...");

        }
    }));
}
Run Code Online (Sandbox Code Playgroud)