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

本文實(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è)定長(zhǎng)的線程池骑疆。達(dá)到最大線程數(shù)后逊谋,線程數(shù)不再增長(zhǎng)坎匿。
如果一個(gè)線程由于非預(yù)期Exception而結(jié)束奈惑,線程池會(huì)補(bǔ)充一個(gè)新的線程慌申。
b) newCachedThreadPool:創(chuàng)建一個(gè)可緩存的線程池陌选。當(dāng)池長(zhǎng)度超過(guò)處理需求時(shí),可以回收空閑的線程蹄溉。
c) newSingleThreadPool:創(chuàng)建一個(gè)單線程executor咨油。
d) newScheduledThreadPool:創(chuàng)建一個(gè)定長(zhǎng)的線程池,而且支持定時(shí)的以及周期性的任務(wù)執(zhí)行柒爵。
類(lèi)似于Timer役电。但是,Timer是基于絕對(duì)時(shí)間棉胀,對(duì)系統(tǒng)時(shí)鐘的改變是敏感的法瑟,而ScheduledThreadPoolExecutor只支持相對(duì)時(shí)間。
3.對(duì)比Timer類(lèi)的應(yīng)用總結(jié)

  1. Timer是創(chuàng)建唯一的線程來(lái)執(zhí)行所有的timer任務(wù)唁奢。如果一個(gè)任務(wù)超時(shí)了霎挟,會(huì)導(dǎo)致其他的TimerTask時(shí)間準(zhǔn)確性出問(wèn)題。
  2. 如果TimerTask拋出uncheck 異常麻掸,Timer將會(huì)產(chǎn)生無(wú)法預(yù)料的行為酥夭。因此,ScheduledThreadPoolExecutor可以完全代替Timer脊奋。
  3. 為了解決執(zhí)行服務(wù)的生命周期問(wèn)題熬北,ExecutorService接口擴(kuò)展了Executor。線程池將包括3個(gè)狀態(tài):running诚隙,shutting down讶隐,terminated。
    4.Callable和Future
    因?yàn)镽unnable沒(méi)有返回值最楷,并且不能拋出checked異常整份,所以Callable是更佳的抽象待错。(Callable<Void>表示無(wú)返回值的任務(wù))。Future描述了任務(wù)的生命周期烈评,并提供了相關(guān)的方法來(lái)獲取任務(wù)的結(jié)果火俄、取消任務(wù)以及檢查任務(wù)完成或則是否取消。
    5.CompletionService整合了Executor和BlockingQueue的功能讲冠。
    其take和poll可以阻塞的獲取完成的任務(wù)瓜客。
    希望本文所述對(duì)大家的java程序設(shè)計(jì)有所幫助。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末竿开,一起剝皮案震驚了整個(gè)濱河市谱仪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌否彩,老刑警劉巖疯攒,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異列荔,居然都是意外死亡敬尺,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)贴浙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)砂吞,“玉大人,你說(shuō)我怎么就攤上這事崎溃◎咧保” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵袁串,是天一觀的道長(zhǎng)概而。 經(jīng)常有香客問(wèn)我,道長(zhǎng)般婆,這世上最難降的妖魔是什么到腥? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮蔚袍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘配名。我一直安慰自己啤咽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布渠脉。 她就那樣靜靜地躺著宇整,像睡著了一般。 火紅的嫁衣襯著肌膚如雪芋膘。 梳的紋絲不亂的頭發(fā)上鳞青,一...
    開(kāi)封第一講書(shū)人閱讀 52,696評(píng)論 1 312
  • 那天霸饲,我揣著相機(jī)與錄音,去河邊找鬼臂拓。 笑死厚脉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的胶惰。 我是一名探鬼主播傻工,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼孵滞!你這毒婦竟也來(lái)了中捆?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤坊饶,失蹤者是張志新(化名)和其女友劉穎泄伪,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體匿级,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡臂容,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了根蟹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脓杉。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖简逮,靈堂內(nèi)的尸體忽然破棺而出球散,到底是詐尸還是另有隱情,我是刑警寧澤散庶,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布蕉堰,位于F島的核電站,受9級(jí)特大地震影響悲龟,放射性物質(zhì)發(fā)生泄漏屋讶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一须教、第九天 我趴在偏房一處隱蔽的房頂上張望皿渗。 院中可真熱鬧,春花似錦轻腺、人聲如沸乐疆。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)挤土。三九已至,卻和暖如春误算,著一層夾襖步出監(jiān)牢的瞬間仰美,已是汗流浹背迷殿。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咖杂,地道東北人庆寺。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像翰苫,于是被迫代替她去往敵國(guó)和親止邮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 下面是我自己收集整理的Java線程相關(guān)的面試題奏窑,可以用它來(lái)好好準(zhǔn)備面試导披。 參考文檔:-《Java核心技術(shù) 卷一》-...
    阿呆變Geek閱讀 14,862評(píng)論 14 507
  • 個(gè)人筆記,方便自己查閱使用 Contents Java LangAssignment, ReferenceData...
    freenik閱讀 1,392評(píng)論 0 6
  • 一.線程安全性 線程安全是建立在對(duì)于對(duì)象狀態(tài)訪問(wèn)操作進(jìn)行管理埃唯,特別是對(duì)共享的與可變的狀態(tài)的訪問(wèn) 解釋下上面的話: ...
    黃大大吃不胖閱讀 852評(píng)論 0 3
  • Java-Review-Note——4.多線程 標(biāo)簽: JavaStudy PS:本來(lái)是分開(kāi)三篇的撩匕,后來(lái)想想還是整...
    coder_pig閱讀 1,655評(píng)論 2 17
  • 慕一朵云 有風(fēng)的變化 戀戀成雨 落皺了一座城 慕一縷清風(fēng) 沒(méi)有禁錮與自由的糾纏 漾漾成音 回響了一座山 慕一段歲月...
    雅歌苑閱讀 1,181評(píng)論 0 3