4

我有一个调用 Thread 类并启动线程的 main() 方法。这个线程有一个 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;
            }
        }));
4

1 回答 1

13

最好的地方根本就没有。由于程序意外中断以挽救可以挽救的东西,关闭挂钩只是最后的手段。

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

于 2012-10-14T19:53:27.290 回答