1

我正在研究 struts 2 框架。我有一个要求,因为当用户点击特定网址时,我需要启用一项功能,几分钟后必须禁用相同的进程。当点击 url 时,所有这些都将在后台运行。所以我决定使用 Threads。以下是我正在使用的代码...

public class ActDeactTrace extends Thread {
 @Override
public void run() {
    System.out.println("RUNNING THREAD...BEFORE SLEEP");
    enableTrace();
    try {
        sleep(5000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    System.out.println("RESUMED THREAD .... AFTER WAKE UP");
    disableTrace();
    super.run();
}
public void enableTrace(){

}
  public void disableTrace(){

}
}

当从用户调用该操作时,我只需通过其对象启动 Thread。由于它是一个网络应用程序,因此许多用户都可以这样做。所以我应该在执行disableTrace方法后手动销毁创建的线程以避免 JVM 问题,还是它会自动被垃圾收集器销毁。

4

2 回答 2

0

值得一读这个相关的问题。在 Java EE 应用服务器中运行应用程序时,需要仔细管理线程。建议您不要启动并尝试销毁应用程序代码中的线程。

于 2013-11-01T03:44:50.730 回答
0

一旦线程完成运行,它就可以被垃圾收集(如果没有对Thread对象的引用)。跑步Thread不能被垃圾收集。

查看Java 线程垃圾是否收集

于 2013-11-01T03:23:43.607 回答