當前位置:才華齋>計算機>java語言>

Java中Executor介面用法大全

java語言 閱讀(9.99K)

本文例項講述了Java中Executor介面用法。分享給大家供大家參考。具體如下:

Java中Executor介面用法大全

中Executor介面的定義

public interface Executor { void execute(Runnable command);}

utors以下靜態工廠方法建立一個執行緒池:

a) newFixedThreadPool:建立一個定長的執行緒池。達到最大執行緒數後,執行緒數不再增長。

如果一個執行緒由於非預期Exception而結束,執行緒池會補充一個新的執行緒。

b) newCachedThreadPool:建立一個可快取的執行緒池。當池長度超過處理需求時,可以回收空閒的執行緒。

c) newSingleThreadPool:建立一個單執行緒executor。

d) newScheduledThreadPool:建立一個定長的執行緒池,而且支援定時的以及週期性的任務執行。

類似於Timer。但是,Timer是基於絕對時間,對系統時鐘的改變是敏感的,而ScheduledThreadPoolExecutor只支援相對時間。

3.對比Timer類的應用總結

1) Timer是建立唯一的執行緒來執行所有的timer任務。如果一個任務超時了,會導致其他的'TimerTask時間準確性出問題。

2) 如果TimerTask丟擲uncheck 異常,Timer將會產生無法預料的行為。因此,ScheduledThreadPoolExecutor可以完全代替Timer。

3) 為了解決執行服務的生命週期問題,ExecutorService介面擴充套件了Executor。執行緒池將包括3個狀態:running,shutting down,terminated。

able和Future

因為Runnable沒有返回值,並且不能丟擲checked異常,所以Callable是更佳的抽象。(Callable表示無返回值的任務)。

Future描述了任務的生命週期,並提供了相關的方法來獲取任務的結果、取消任務以及檢查任務完成或則是否取消。

letionService整合了Executor和BlockingQueue的功能。

其take和poll可以阻塞的獲取完成的任務。

希望本文所述對大家的java程式設計有所幫助。