tangguo

在Tomcat下启动线程

java

有人告诉我,您不应该从在Tomcat(或其他任何容器)下运行的Web应用程序启动自己的线程。

Runnable myRunnable = new Runnable() {
  public void run() {
    System.out.println("I'm running");
  }
}

new Thread(myRunnable).start();

或类似地:

ScheduledThreadPoolExecutor retrySchedulerService = new ScheduledThreadPoolExecutor(3);
retrySchedulerService.schedule(dlrRetryTask, 120, TimeUnit.SECONDS);

您应该从Tomcat知道的某个线程池中请求一个线程,而不是上述任何一个。这有什么道理吗,还是完全是poppycock?


阅读 513

收藏
2020-10-16

共1个答案

小编典典

可以随意启动自己的线程,但是请记住在应用程序停止时将其停止。Tomcat有自己的thead池,用于处理传入的请求。我认为使用它不是一个好主意,即使您设法访问它也是如此。

通常,在Java EE环境中启动线程不是一个好习惯,但是在Tomcat之类的servlet容器中启动线程也不错。

2020-10-16