執行緒併發庫之Executors

2021-07-10 08:36:39 字數 745 閱讀 1570

executors

newfixedthreadpool(固定大小執行緒池)建立乙個可重用固定執行緒集合的執行緒池,以共享的無界佇列方式來執行這些執行緒(只有要請求的過

來,就會在乙個佇列裡等待執行)。如果在關閉前的執行期間由於失敗而導致任何執行緒終止,那麼乙個新執行緒將代替它執行後續的任務(如果

需要)。

newcachedthreadpool(無界線程池,可以進行自動線程**)

建立乙個可根據需要建立新執行緒的執行緒池,但是在以前構造的執行緒可用時將重用它們。對於執行很多短期非同步任務的程式而言,這些執行緒池通

常可提高程式效能。呼叫 execute 將重用以前構造的執行緒(如果執行緒可用)。如果現有執行緒沒有可用的,則建立乙個新執行緒並新增到池中。終

止並從快取中移除那些已有 60 秒鐘未被使用的執行緒。因此,長時間保持空閒的執行緒池不會使用任何資源。注意,可以使threadpoolexecutor

構造方法建立具有類似屬性但細節不同(例如超時引數)的執行緒池。

newsinglethreadexecutor(單個後台執行緒)

建立乙個使用單個 worker 執行緒的 executor,以無界佇列方式來執行該執行緒。(注意,如果因為在關閉前的執行期間出現失敗而終止了此單個

執行緒,那麼如果需要,乙個新執行緒將代替它執行後續的任務)。可保證順序地執行各個任務,並且在任意給定的時間不會有多個執行緒是活動

的。與其他等效的 newfixedthreadpool(1) 不同,可保證無需重新配置此方法所返回的執行程式即可使用其他的執行緒。

併發程式設計 Executors(二 自定義執行緒池)

前面介紹到,executor的執行緒池工廠通過threadpoolexecutor來構建帶有特定功能的執行緒池,同樣,也可以使用threadpoolexecutor來構建自定義執行緒池。通過threadpoolexecutor構建自定義執行緒池比較關鍵的是其建構函式中所傳入的佇列型別。使用有界佇列時...

executors建立執行緒池

private static final executor exec executors.newfixedthreadpool 50 runnable runnable new runnable exec.execute runnable callablecallable new callable ...

Executors建立執行緒池

兩個靜態方法 executorservice exec executors.newcachethreadpool 這個方式會為每個任務建立乙個執行緒。executorservice exec executors.newfixedthreadpool 10 建立10個執行緒的執行緒池。執行某個實現ru...