[英]Dynamically creating threads on Struts2 application
我正在研究struts 2框架。 我有一个要求,因为当用户点击特定的URL时,我需要启用功能,并且几分钟后必须禁用相同的过程。 当访问该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(){
}
}
当从用户调用动作时,我只是通过其对象启动线程。 由于它是一个Web应用程序,因此许多用户可以执行相同的操作。 因此,应该在执行disableTrace方法之后手动销毁创建的线程,以避免JVM问题,否则它将被垃圾收集器自动销毁。
一旦线程完成运行,就可以对其进行垃圾回收(如果没有对Thread
对象的引用)。 无法对正在运行的Thread
进行垃圾回收。
查看是否收集了Java线程垃圾
值得阅读此相关问题。 在Java EE应用程序服务器中运行应用程序时,需要仔细管理线程。 建议您不要启动并尝试破坏应用程序代码中的线程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.