最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Executor接口用法總結(jié)

 更新時(shí)間:2015年06月08日 16:19:52   作者:liuzx32  
這篇文章主要介紹了Java中Executor接口用法,較為詳細(xì)的總結(jié)了Executor接口的定義、創(chuàng)建及用法,需要的朋友可以參考下

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

1.Java中Executor接口的定義

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

2.Executors以下靜態(tài)工廠方法創(chuàng)建一個(gè)線程池:

a) newFixedThreadPool:創(chuàng)建一個(gè)定長的線程池。達(dá)到最大線程數(shù)后,線程數(shù)不再增長。

如果一個(gè)線程由于非預(yù)期Exception而結(jié)束,線程池會補(bǔ)充一個(gè)新的線程。

b) newCachedThreadPool:創(chuàng)建一個(gè)可緩存的線程池。當(dāng)池長度超過處理需求時(shí),可以回收空閑的線程。

c) newSingleThreadPool:創(chuàng)建一個(gè)單線程executor。

d) newScheduledThreadPool:創(chuàng)建一個(gè)定長的線程池,而且支持定時(shí)的以及周期性的任務(wù)執(zhí)行。

類似于Timer。但是,Timer是基于絕對時(shí)間,對系統(tǒng)時(shí)鐘的改變是敏感的,而ScheduledThreadPoolExecutor只支持相對時(shí)間。

3.對比Timer類的應(yīng)用總結(jié)

1) Timer是創(chuàng)建唯一的線程來執(zhí)行所有的timer任務(wù)。如果一個(gè)任務(wù)超時(shí)了,會導(dǎo)致其他的TimerTask時(shí)間準(zhǔn)確性出問題。

2) 如果TimerTask拋出uncheck 異常,Timer將會產(chǎn)生無法預(yù)料的行為。因此,ScheduledThreadPoolExecutor可以完全代替Timer。

3) 為了解決執(zhí)行服務(wù)的生命周期問題,ExecutorService接口擴(kuò)展了Executor。線程池將包括3個(gè)狀態(tài):running,shutting down,terminated。

4.Callable和Future

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

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

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

希望本文所述對大家的java程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評論

临夏县| 盐津县| 宣威市| 民权县| 金华市| 竹山县| 三都| 盘锦市| 吉木萨尔县| 北辰区| 敦煌市| 阿克陶县| 抚州市| 宣化县| 英山县| 辽宁省| 双柏县| 运城市| 连云港市| 邢台市| 临澧县| 张家界市| 米泉市| 桦川县| 太仓市| 集贤县| 吉木萨尔县| 三门县| 上思县| 无为县| 财经| 准格尔旗| 新民市| 黔江区| 鹤壁市| 安国市| 连平县| 晋江市| 灵丘县| 竹北市| 西藏|