Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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_Spring_Tomcat_Jakarta Ee_Spring Mvc - Fatal编程技术网

Java 在Tomcat中打开新线程

Java 在Tomcat中打开新线程,java,spring,tomcat,jakarta-ee,spring-mvc,Java,Spring,Tomcat,Jakarta Ee,Spring Mvc,我只是在问一个理论问题 我有一个需要一段时间的操作,它是在一些Servlet doGet/doPost方法中或在SpringMVC控制器中执行的。打开新的后台线程并在那里执行是个好主意吗? 这不会导致性能问题吗 如果我在这种情况下使用JBossJMS系统,我会得到一些好处吗 好吧,因为Tomcat不是JavaEE容器,只是一个Servlet容器,所以您可以毫无问题地打开新线程(除了您应该处理的典型多线程问题;) JMS是一种将模块解耦的解决方案—处理消息的成熟中间件(全新的运行时)。如果出于效率

我只是在问一个理论问题

我有一个需要一段时间的操作,它是在一些Servlet doGet/doPost方法中或在SpringMVC控制器中执行的。打开新的后台线程并在那里执行是个好主意吗? 这不会导致性能问题吗


如果我在这种情况下使用JBossJMS系统,我会得到一些好处吗

好吧,因为Tomcat不是JavaEE容器,只是一个Servlet容器,所以您可以毫无问题地打开新线程(除了您应该处理的典型多线程问题;)

JMS是一种将模块解耦的解决方案—处理消息的成熟中间件(全新的运行时)。如果出于效率原因只想解耦单个流程,那么这种方法对您来说可能太复杂了


如果您使用的是Spring3.0,我建议您使用。您只需使用@Async注释bean的一个方法,就完成了:)。

没关系(Tomcat不是JavaEE容器)。既然您提到了SpringMVC,我建议您在想要执行的方法上使用它——新线程将由Spring生成(这与等效的JavaEE注释非常相似)

Servlet 3.0引入了异步处理,这在这里会有所帮助

基本上,您可以将servlet标记为支持异步处理,然后使用上下文启动一个新线程——容器为您这样做,这样您就不需要自己处理任何线程

看。这样做的好处是,servlet可以移植到完整的JavaEE容器中,而不允许您启动自己的线程

另外,考虑使用Java.UTI.Realm的Exchange服务和朋友。现在没有真正的理由自己使用“new Thread()”