javatomcat多线程问题
我正在编写一个java应用程序,它在多核硬件上运行在Tomcat中。
应用程序执行一个算法并将答案返回给用户。问题是,即使我同时运行两个请求,tomcat进程也最多使用一个CPU核
据我所知,Tomcat中的每个请求都在单独的线程中执行,JVM应该在单独的CPU核心上运行每个线程
什么问题会限制JVM或Tomcat只使用一个内核
提前谢谢
你可以在下面搜索框中键入要查询的问题!
我正在编写一个java应用程序,它在多核硬件上运行在Tomcat中。
应用程序执行一个算法并将答案返回给用户。问题是,即使我同时运行两个请求,tomcat进程也最多使用一个CPU核
据我所知,Tomcat中的每个请求都在单独的线程中执行,JVM应该在单独的CPU核心上运行每个线程
什么问题会限制JVM或Tomcat只使用一个内核
提前谢谢
# 1 楼答案
所有处理器管理都将由服务器自己负责。如果您通过两个请求,它应该使用两个CPU,这不是强制性的
# 2 楼答案
下面是在tomcat http://tomcat.apache.org/tomcat-5.5-doc/balancer-howto.html中进行负载平衡的过程
我认为这也适用于Tomcat 6,因为他们提到了平衡器webapp随Tomcat 5.0及更高版本一起提供
# 3 楼答案
您是否正在执行任何会强制串行执行的同步块/方法?服务器中的tomcat连接器配置。xml控制请求线程池——但默认值是200个线程,IIRC
# 4 楼答案
您确定正在创建两个线程吗。您可以简单地打印线程的名称作为快速测试
如果在独立应用程序中运行该算法,会发生什么