我正在写一个Java应用程序,运行在Tomcat中,在多芯的硬件。 该应用程序执行的算法,然后返回答案给用户。问题是,即使我同时运行两个请求,Tomcat进程最多使用一个CPU核心。结果 据我理解Tomcat的每个请求在单独的线程中执行,并且JVM应该运行在单独的CPU核心每个线程。

有什么能为界的JVM或Tomcat使用不超过一个核心是什么?这个问题

预先感谢。

有帮助吗?

解决方案

您确定正在创建两个线程。你可以简单地打印线程的名称为快速测试。

如果您在一个独立的应用程序运行的算法,会发生什么?

其他提示

所有处理器管理将由服务器本身的照顾。这不是强制性的,如果传递两个请求,它应该使用两个CPU。

您执行任何同步块/方法这将迫使串行执行? server.xml中控制Tomcat连接器配置的请求线程池 - 但默认是200个线程,IIRC

下面是做在Tomcat中 HTTP负载平衡的过程: //tomcat.apache.org/tomcat-5.5-doc/balancer-howto.html

我认为这将使用Tomcat 6,因为他们提到的平衡器的webapp附带Tomcat 5.0或更高版本工作了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top