Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Tomcat下启动线程_Java_Multithreading_Tomcat - Fatal编程技术网

Java 在Tomcat下启动线程

Java 在Tomcat下启动线程,java,multithreading,tomcat,Java,Multithreading,Tomcat,有人告诉我,你不应该从运行在Tomcat(或者任何其他容器)下的webapp启动自己的线程 或类似地: ScheduledThreadPoolExecutor retrySchedulerService = new ScheduledThreadPoolExecutor(3); retrySchedulerService.schedule(dlrRetryTask, 120, TimeUnit.SECONDS); 您应该从Tomcat知道的一些线程池中请求一个线程,而不是上述任何一个。这是真的

有人告诉我,你不应该从运行在Tomcat(或者任何其他容器)下的webapp启动自己的线程

或类似地:

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

您应该从Tomcat知道的一些线程池中请求一个线程,而不是上述任何一个。这是真的吗,还是完全胡说八道?

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


一般来说,在JavaEE环境中启动线程不是一个好的实践,但在像Tomcat这样的servlet容器中启动线程并没有什么坏处。

下面是关于从servlet运行线程的讨论

另一个讨论是关于从EJB容器运行线程

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