有人告诉我,您不应该从在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?
可以随意启动自己的线程,但是请记住在应用程序停止时将其停止。Tomcat有自己的thead池,用于处理传入的请求。我认为使用它不是一个好主意,即使您设法访问它也是如此。
通常,在Java EE环境中启动线程不是一个好习惯,但是在Tomcat之类的servlet容器中启动线程也不错。