2017-03-19 49 views
1

我正在爲基於Jersey的Web服務添加一個新端點。支持端點的邏輯需要對另一個服務進行10到50次調用。這些調用是獨立的,可以並行化,所以我正在考慮使用executor服務來將工作分配到多個線程中。我應該在請求中創建executorService還是在整個webapp中共享一個實例?

我想知道是否應該爲每個請求實例化一個executorService,或者是否應該跨Web應用程序共享executorService實例。在後面的例子中,我將如何確定它應該運行的線程數量?

回答

2

我想知道如果我應該實例一個ExecutorService每個 請求或應該有橫跨 網絡應用程序共享的ExecutorService實例。在後面的例子中,我將如何確定它應該運行的線程數量 ?

號一般情況下,你不應該實例化executorService每個Web請求(選項-1),因爲服務器將很快耗盡內存,並且還有飛線程池的創建是昂貴的(費時)。

因此,您需要通過在服務器啓動時創建executorService的共享實例(選項-2)&根據您的要求配置線程池大小並進行性能測試。

你可以參考here瞭解的線程池。

+0

什麼是落實選項2的最佳方法?共享的ExecutorService在創造它(通過例如)像靜態字段控制器?或者你認爲有更好的方法來共享ExecutionService? – Rahnzo

相關問題