Java 在Struts2应用程序上动态创建线程
我正在研究struts 2框架。我有一个要求,当用户点击一个特定的url时,我需要启用一个功能,几分钟后必须禁用相同的过程。当点击url时,所有这些都将在后台运行。所以我决定用线程来实现它。下面是我正在使用的代码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
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应用服务器中运行应用程序时,需要仔细管理线程。建议不要启动并试图破坏应用程序代码中的线程