java - 我必须在应用程序退出时手动关闭 Executor 吗?

标签 java concurrency shutdown executor resource-management

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

最佳答案

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

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

关于java - 我必须在应用程序退出时手动关闭 Executor 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5557595/

相关文章:

java - Json - JSONArray 无法转换为 JSONObject

java - 在 Java 中安排周期性任务,避免在必要时创建新线程(如 CachedThreadPool)

c++ - 了解 std::hardware_破坏性_interference_size 和 std::hardware_constructive_interference_size

Tomcat 9 关闭在 Windows 和 Linux 上不起作用

windows - .NET 取消关闭表单会阻止它在 Windows 关闭时关闭

java - 基本TCP通讯端口相关查询

JavaFx 组合框下拉列表宽度在第一次单击组合框时较小

java - 嵌套异常是 java.lang.NoClassDefFoundError : org/springframework/data/mapping/IdentifierAccessor

java - Java中的并发——等待执行完成

Jersey 2.3 在 servlet 容器关闭时不调用 HK2 服务定位器关闭