gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 05:52:35 25 4
gpt4 key购买 nike

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

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

此外,我不能使用关闭 Hook ,因为我的代码在 Java EE 服务器上运行,并且不是一个简单的 Java SE 应用程序,它会立即运行和终止。在这种情况下可以做什么?

最佳答案

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

查看允许在 Java EE 容器中创建后台工作程序的 CommonJ JSR 237: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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com