在Tomcat下启动线程

Dón*_*nal 9 java multithreading tomcat

有人告诉我,你不应该从在Tomcat下运行的webapp(或任何其他容器,大概是)开始你自己的线程

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

new Thread(myRunnable).start();
Run Code Online (Sandbox Code Playgroud)

或类似地:

ScheduledThreadPoolExecutor retrySchedulerService = new ScheduledThreadPoolExecutor(3);
retrySchedulerService.schedule(dlrRetryTask, 120, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)

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

Ant*_*ton 9

随意启动自己的线程,但记得在应用程序停止时停止它们.Tomcat有自己的thead池,用于处理传入的请求.我不认为使用它是个好主意,即使你设法访问它.

通常,在Java EE环境中启动线程并不是一个好习惯,但在像Tomcat这样的servlet容器中启动线程没什么不好.