我開發了一個使用運行servlet的Tomcat的簡單服務器。Servlet似乎並沒有以線程的方式執行
該servlet調用命令行程序 - 執行大約20秒鐘,然後通過JSON將結果返回給用戶。問題是 - 如果我做出2個以上的同時請求,那麼這個servlet將阻塞,直到前面的一個請求完成。
一個例子可以在下面看到 - 「Im in」是servlet的頂部,結果列表是在servlet執行之後。所有請求都是在同一時間完成的 - 但您可以清楚地看到它們不會被同時處理。我需要在tomcat中更改哪些設置才能同時處理所有請求?
Im in Im in FVFNT01 STOP_IDLE FVFNT03 STOP_IDLE FVFNT16 STOP_IDLE FVFNT17 STOP_IDLE FVFNT01 STOP_IDLE FVFNT03 STOP_IDLE FVFNT16 STOP_IDLE FVFNT17 STOP_IDLE Im in FVFNT01 STOP_IDLE FVFNT03 STOP_IDLE FVFNT16 STOP_IDLE FVFNT17 STOP_IDLE Im in FVFNT01 STOP_IDLE FVFNT03 STOP_IDLE FVFNT16 STOP_IDLE FVFNT17 STOP_IDLE Im in FVFNT01 STOP_IDLE FVFNT03 STOP_IDLE FVFNT16 STOP_IDLE FVFNT17 STOP_IDLE Im in FVFNT01 STOP_IDLE FVFNT03 STOP_IDLE FVFNT16 STOP_IDLE FVFNT17 STOP_IDLE Im in FVFNT01 STOP_IDLE FVFNT03 STOP_IDLE FVFNT16 STOP_IDLE FVFNT17 STOP_IDLE Im in FVFNT01 STOP_IDLE FVFNT03 STOP_IDLE FVFNT16 STOP_IDLE FVFNT17 STOP_IDLE
我不明白你的輸出。嘗試添加線程名稱,以便您可以看到哪些線程處理您的請求。您可以通過調用Thread.currentThread()。getName()來獲取當前線程名稱。另外,試着將你的「Im in」消息與結果「聯系起來」,即記住操作的開始時間並將結果寫入(原子計數器會更好)。 – 2010-05-06 10:20:53