Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Struts2应用程序上动态创建线程_Java_Multithreading_Jakarta Ee_Struts2 - Fatal编程技术网

Java 在Struts2应用程序上动态创建线程

Java 在Struts2应用程序上动态创建线程,java,multithreading,jakarta-ee,struts2,Java,Multithreading,Jakarta Ee,Struts2,我正在研究struts 2框架。我有一个要求,当用户点击一个特定的url时,我需要启用一个功能,几分钟后必须禁用相同的过程。当点击url时,所有这些都将在后台运行。所以我决定用线程来实现它。下面是我正在使用的代码 public class ActDeactTrace extends Thread { @Override public void run() { System.out.println("RUNNING THREAD...BEFORE SLEEP"); enableT

我正在研究struts 2框架。我有一个要求,当用户点击一个特定的url时,我需要启用一个功能,几分钟后必须禁用相同的过程。当点击url时,所有这些都将在后台运行。所以我决定用线程来实现它。下面是我正在使用的代码

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(){

}
}

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

一旦线程完成运行,就可以对其进行垃圾回收(如果没有对
线程
对象的引用)。无法对正在运行的
线程
进行垃圾收集

参见

值得一读的相关问题。在JavaEE应用服务器中运行应用程序时,需要仔细管理线程。建议不要启动并试图破坏应用程序代码中的线程