Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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 在不同战争之间共享线程池_Java_Tomcat_Threadpool_War_Tomcat8 - Fatal编程技术网

Java 在不同战争之间共享线程池

Java 在不同战争之间共享线程池,java,tomcat,threadpool,war,tomcat8,Java,Tomcat,Threadpool,War,Tomcat8,在Tomcat8服务器中,我们有几个WAR项目需要线程池来执行任务(特别是调度程序和并行处理,以提高性能) 由于每个池都处理自己的线程,它最终向容器中添加了太多线程,因此出现了一个明显的问题:是否可以在Tomcat中以某种方式与多个war项目共享一个线程池 这些池是Java和标准Java的混合体,但我想如果需要,可以将它们标准化为单一类型 PS:如果这样,这真的有帮助吗?如何?您可以将单个线程池配置为全局JNDI资源,然后使用ResourceLink使该资源可供您需要的任意多个或任意少的web应

在Tomcat8服务器中,我们有几个WAR项目需要线程池来执行任务(特别是调度程序和并行处理,以提高性能)

由于每个池都处理自己的线程,它最终向容器中添加了太多线程,因此出现了一个明显的问题:是否可以在Tomcat中以某种方式与多个war项目共享一个线程池

这些池是Java和标准Java的混合体,但我想如果需要,可以将它们标准化为单一类型


PS:如果这样,这真的有帮助吗?如何?

您可以将单个线程池配置为全局JNDI资源,然后使用ResourceLink使该资源可供您需要的任意多个或任意少的web应用程序使用。您可能需要编写一个简单的自定义资源工厂来实现这一点


Tomcat为一个简单的工厂提供了一个成功的例子。

首先,如果你超过了Tomcat的容量,你应该看看你的架构,以确保你不能减少线程的数量。@Zorglube你能解释一下和/或重新措辞一下你的评论吗?请,我实际上不明白你的意思。我只是说,如果你有太多的线程,Tomcat无法处理它:你应该重新设计你的软件架构,以确保你不能用更少的线程来完成这项工作。