jakarta-ee - Java,如何在对象销毁时终止进程

标签 jakarta-ee garbage-collection destructor jboss7.x

假设我有一个对象“A”,它在其构造函数中启动一些进程。一旦对象被释放(设置为 null 或超出其生命范围),我需要调用清理方法。

问题在于 java 没有析构函数,并且不能保证所谓的“finalize”方法在对象设置为 null 或超出范围后立即运行。仅当 GC 认为“时机已到”时。

此外,我无法使用关闭 Hook ,因为我的代码在 Java EE 服务器上运行,而不是一个会立即运行和终止的简单 Java SE 应用程序。这种情况该怎么办?

最佳答案

您不应该在 Java EE 容器中创建自己的线程,也不要尝试终止它们,因为这已被弃用,并且会严重破坏您的虚拟机/Java EE 容器。

看一下 CommonJ JSR 237,它允许在 Java EE 容器中创建后台工作人员: http://docs.oracle.com/cd/E13222_01/wls/docs92/commonj/commonj.html

您可以使用 ServletContextListener 控制 Java EE 应用程序的启动和关闭:http://www.roseindia.net/servlets/ServletContextListener-example.shtml .

关于jakarta-ee - Java,如何在对象销毁时终止进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9905815/

相关文章:

c++ - 返回类析构函数

java - 在数据库中插入图像时出错

java - 如何将数据从 EJB 拦截器传递到异步 EJB 中的拦截器

java - 分布式 Java EE 配置中的 JPA

c++ - 非指针成员变量的虚析构函数

c++ - 如何在 C 中模拟构造函数和析构函数行为(针对特定数据类型)

jsf - selectOneMenu 选定值

javascript - Node 没有正确地 gc 我的对象

C++ 垃圾回收编译器

JavaScript 内存释放