標籤:
1.java.util.Executor 介面只有一個方法
void execute(Runnable command):在未來某個時間執行給定的命令。該命令可能在新的線程、已入池的線程或者正調用的線程中執行,這由 Executor 實現決定。
2.java.util.Executors類
public static ExecutorService newFixedThreadPool(int nThreads)
建立一個可重用固定線程數的線程池,以共用的無界隊列方式來運行這些線程。在任意點,在大多數 nThreads 線程會處於處理任務的活動狀態。如果在所有線程處於活動狀態時提交附加任務,則在有可用線程之前,附加任務將在隊列中等待。如果在關閉前的執行期間由於失敗而導致任何線程終止,那麼一個新線程將代替它執行後續的任務(如果需要)。在某個線程被顯式地關閉之前,池中的線程將一直存在。
public static ExecutorService newCachedThreadPool()
建立一個可根據需要建立新線程的線程池,但是在以前構造的線程可用時將重用它們。對於執行很多短期非同步任務的程式而言,這些線程池通常可提高程式效能。調用 execute 將重用以前構造的線程
(如果線程可用)。如果現有線程沒有可用的,則建立一個新線程並添加到池中。終止並從緩衝中移除那些已有 60 秒鐘未被使用的線程。因此,長時間保持閒置線程池不會使用任何資源。注意,可以使用 ThreadPoolExecutor 構造方法建立具有類似屬性但細節不同(例如逾時參數)的線程池。
public static ExecutorService newSingleThreadExecutor()
-
建立一個使用單個 worker 線程的 Executor,以無界隊列方式來運行該線程。(注意,如果因為在關閉前的執行期間出現失敗而終止了此單個線程,那麼如果需要,一個新線程將代替它執行後續的任務)。可保證順序地執行各個任務,並且在任意給定的時間不會有多個線程是活動的。與其他等效的 newFixedThreadPool(1) 不同,可保證無需重新設定此方法所返回的執行程式即可使用其他的線程。
3.使用 ThreadPoolExecutor 構造方法建立具有類似屬性但細節不同(例如逾時參數)的線程池
java.util.concurrent