2014-04-11 36 views
0

對於特定的動作,應用程序創建兩個線程(執行不同的任務),主線程不會等待它。在某些情況下,它也只能是一個線程。只有兩個線程使用Executors.newFixedThreadPool?

如果我將這一個移動到Executors.newFixedThreadPool(),它有什麼區別?我明白執行者正在做線程管理。這對多線程場景很有用。

但我想知道它是否至少在兩個線程更改爲使用執行程序時會產生任何微小差異?請幫忙。

在此先感謝。

+0

'ExecutorService'只是一種更簡單的方式來處理異步執行的東西。你在找什麼小小的差異?關於什麼? –

+0

任何與CPU利用率有關的東西?類似的東西。我並不期望性能有所提高,因爲它完全依照我的情況執行任務。 – Vaandu

回答

1

這可能會帶來更好的CPU利用率當u有多個線程,並希望 同時執行幾個人,但如果你只有兩個線程那麼我認爲這是 不利於使用執行人。

從docs.oracle

線程池解決兩個不同的問題:他們通常執行大量異步任務時,由於每個任務調用的開銷減少了提供更高的性能,以及它們提供的邊界和管理的一種手段在執行任務集合時消耗的資源(包括線程)。每個ThreadPoolExecutor還維護一些基本統計信息,例如已完成任務的數量。

相關問題