3

假设我的Executor executor;应用程序中有一个地方。只是像往常一样说并让“系统”处理它就足够了setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);吗,还是我必须executor.shutdown();在应用程序退出之前注册一个侦听器并手动调用?

4

2 回答 2

2

如果这是一个独立的应用程序并且您不关心任何正在运行的线程只是退出,那么您真的不必担心它。

如果你的类在运行其他东西的 VM 中运行(例如 Tomcat 之类的 servlet 容器),你需要显式关闭执行程序,否则线程可能会继续运行(Tomcat 会对你大喊大叫并告诉你它有线程无法杀死并且您正在泄漏内存)。

于 2011-04-05T19:49:31.633 回答
0

根据应用程序,当您创建 Executor 时,您将向它传递一个 ThreadFactory 来创建守护线程。这些不会阻止应用程序关闭,但它们也会随机终止。

于 2011-04-05T22:32:31.707 回答