国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java中Executor接口用法總結

2019-11-26 15:09:36
字體:
來源:轉載
供稿:網友

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

1.Java中Executor接口的定義

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

2.Executors以下靜態工廠方法創建一個線程池:

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。

4.Callable和Future

因為Runnable沒有返回值,并且不能拋出checked異常,所以Callable是更佳的抽象。(Callable<Void>表示無返回值的任務)。
Future描述了任務的生命周期,并提供了相關的方法來獲取任務的結果、取消任務以及檢查任務完成或則是否取消。

5.CompletionService整合了Executor和BlockingQueue的功能。

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定安县| 毕节市| 吐鲁番市| 东乌珠穆沁旗| 云龙县| 安溪县| 赫章县| 古田县| 乐山市| 竹溪县| 丹凤县| 阿图什市| 淅川县| 无锡市| 丰台区| 南木林县| 洞口县| 丰台区| 鸡西市| 喀什市| 中方县| 宣恩县| 富平县| 珲春市| 兴国县| 南丹县| 双柏县| 赤水市| 定结县| 陕西省| 桐柏县| 靖宇县| 包头市| 右玉县| 英吉沙县| 雅安市| 象山县| 平利县| 永新县| 汝城县| 大厂|