欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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è)定長(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í)行。

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

3.對(duì)比Timer類的應(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ì)有所幫助。

相關(guān)文章

  • Spring注解開(kāi)發(fā)生命周期原理解析

    Spring注解開(kāi)發(fā)生命周期原理解析

    這篇文章主要介紹了Spring注解開(kāi)發(fā)生命周期原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java動(dòng)態(tài)字節(jié)碼注入技術(shù)的實(shí)現(xiàn)

    Java動(dòng)態(tài)字節(jié)碼注入技術(shù)的實(shí)現(xiàn)

    Java動(dòng)態(tài)字節(jié)碼注入技術(shù)是一種在運(yùn)行時(shí)修改Java字節(jié)碼的技術(shù),本文主要介紹了Java動(dòng)態(tài)字節(jié)碼注入技術(shù)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • java 內(nèi)嵌Groovy動(dòng)態(tài)腳本操作

    java 內(nèi)嵌Groovy動(dòng)態(tài)腳本操作

    這篇文章主要介紹了java 內(nèi)嵌Groovy動(dòng)態(tài)腳本操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Springboot簡(jiǎn)單熱部署實(shí)現(xiàn)步驟解析

    Springboot簡(jiǎn)單熱部署實(shí)現(xiàn)步驟解析

    這篇文章主要介紹了Springboot簡(jiǎn)單熱部署實(shí)現(xiàn)步驟解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • SpringBoot使用AOP實(shí)現(xiàn)日志記錄功能詳解

    SpringBoot使用AOP實(shí)現(xiàn)日志記錄功能詳解

    這篇文章主要為大家介紹了SpringBoot使用AOP實(shí)現(xiàn)日志記錄功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Java基礎(chǔ)之方法重寫詳解

    Java基礎(chǔ)之方法重寫詳解

    這篇文章主要介紹了Java基礎(chǔ)之方法重寫詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • Java?Spring的使用注解開(kāi)發(fā)詳解

    Java?Spring的使用注解開(kāi)發(fā)詳解

    這篇文章主要為大家介紹了Java?Spring注解開(kāi)發(fā),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • java對(duì)象轉(zhuǎn)化成String類型的四種方法小結(jié)

    java對(duì)象轉(zhuǎn)化成String類型的四種方法小結(jié)

    在java項(xiàng)目的實(shí)際開(kāi)發(fā)和應(yīng)用中,常常需要用到將對(duì)象轉(zhuǎn)為String這一基本功能。本文就詳細(xì)的介紹幾種方法,感興趣的可以了解一下
    2021-08-08
  • springcloud如何使用dubbo開(kāi)發(fā)rpc服務(wù)及調(diào)用

    springcloud如何使用dubbo開(kāi)發(fā)rpc服務(wù)及調(diào)用

    這篇文章主要介紹了springcloud如何使用dubbo開(kāi)發(fā)rpc服務(wù)及調(diào)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • spring多數(shù)據(jù)源配置實(shí)現(xiàn)方法實(shí)例分析

    spring多數(shù)據(jù)源配置實(shí)現(xiàn)方法實(shí)例分析

    這篇文章主要介紹了spring多數(shù)據(jù)源配置實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了spring多數(shù)據(jù)源配置相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下
    2019-12-12

最新評(píng)論