2012-06-19 161 views
3


我不明白glassfish v3.1.2的行为。最大并发线程数小于最大线程池大小

我跑我的Java Web应用程序与这样GlassFish的线程池参数:

  • 类名称:com.sun.grizzly.http.StatsThreadPool
  • 最大队列大小:4096
  • 最大主题池大小:10
  • 最小线程池大小:10
  • 空闲线程
  • 超时:900

然后我发送了很多请求到我的servlet。我的servlet的逻辑是这样的:

//do some action 
Thread.currentThread().sleep(5000); 

NetBeans配置显示这些结果在线程窗口: http://s8.postimage.org/5hupqk4ad/profiler.png

似乎所有10个线程被创建,但只有5可以同时运行。 当然,我想同时使用最大数量的线程。

有人可以解释这种行为,并建议如何解决它。

如果您需要更多信息,告诉我。 谢谢

回答

1

试着检查你的客户端,可能你有限制。

+0

真的!原因在于客户端源代码。有5个连接到服务器的限制。 –

+0

@Vitaly - 只是好奇,客户端使用了什么,以及如何配置它以与服务器建立特定数量的连接? –

+0

@AndyDufresne - 这是客户端应用程序与伟大的地图控制(http://greatmaps.codeplex.com/)。这个控件是从我的服务器应用程序获取磁贴。用于获取拼贴的simultaniuos线程的数量等于5。 –