假设我的应用程序中有某个Executor executor;
。只是像往常一样说setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
并让“系统”处理它,或者我必须注册一个监听器并在应用程序退出之前手动调用executor.shutdown();
这样就足够了吗?
答案 0 :(得分:2)
如果这是一个独立的应用程序,并且您不关心任何正在运行的线程是否退出,那么您真的不必担心它。
如果您的类在运行其他东西的VM中运行(例如像Tomcat这样的servlet容器),则需要显式关闭执行程序,否则线程可能会继续运行(Tomcat会对你大喊大叫并告诉你它有无法杀死的线程,而且你正在泄漏内存)。
答案 1 :(得分:0)
根据应用程序的不同,在创建Executor时,会向其传递一个创建守护程序线程的ThreadFactory。这些不会阻止应用程序关闭,但它们也会随机终止。