2012-06-19 218 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。 –