关闭钩子的最佳场所

时间:2012-10-14 19:50:12

标签: java

我有一个main()方法,它调用Thread类并启动一个线程。这个线程有一个while(threadBool)循环,所以我需要在退出程序时停止它(通过将threadBool设置为false)。放置addShutdownHook()的最佳位置在哪里?在main()方法中

Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {

            public void run() {
                class.threadBool=false;
            }
        }));  

或在启动此帖子的同一个类

Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {

            public void run() {
                threadBool=false;
            }
        }));

1 个答案:

答案 0 :(得分:13)

最好的地方无处可去。关闭钩子只是最后的努力,因为程序意外中断以挽救可以挽救的东西。

您应该组织代码,以便有一个干净定义的入口点,主体和出口点。然后,您可以在退出点停止线程。