日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

淺談Java ThreadPoolExecutor的使用

瀏覽:35日期:2022-08-12 15:46:51
目錄一、前言二、ThreadPoolExecutor三、構(gòu)造函數(shù)參數(shù)解析四、總結(jié)一、前言

線程池主要由以下4個核心組件組成。

線程池管理器:用于創(chuàng)建并管理線程池 工作線程:線程池中執(zhí)行具體任務的線程 任務接口:用于定義工作線程的調(diào)度和執(zhí)行策略,只有線程實現(xiàn)了該接口,線程中的任務才能被線程池調(diào)度 任務隊列:放待處理的任務,新的任務將會不斷被加入隊列中,執(zhí)行完成的任務將從隊列中移除

淺談Java ThreadPoolExecutor的使用

二、ThreadPoolExecutor

如下是線程池的構(gòu)造方法

public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler) {if (corePoolSize < 0 || maximumPoolSize <= 0 || maximumPoolSize < corePoolSize || keepAliveTime < 0) throw new IllegalArgumentException();if (workQueue == null || threadFactory == null || handler == null) throw new NullPointerException();this.acc = System.getSecurityManager() == null ?null :AccessController.getContext();this.corePoolSize = corePoolSize;this.maximumPoolSize = maximumPoolSize;this.workQueue = workQueue;this.keepAliveTime = unit.toNanos(keepAliveTime);this.threadFactory = threadFactory;this.handler = handler;}

其中具體參數(shù)含義為:

1.corePoolSize:線程池中核心線程的數(shù)量

2.maximumPoolSize:線程池中最大線程的數(shù)量

3.keepAliveTime:當線程數(shù)量超過corePoolSize時,空閑線程的存活時間

4.unit:keepAliveTime的時間單位

5.workQueue:任務隊列,被提交但尚未被執(zhí)行的任務存放的地方

6.threadFactory:線程工廠,用于創(chuàng)建線程,可使用默認的線程工廠或自定義線程工廠

7.handler:由于任務過多或其他原因?qū)е戮€程池無法處理時的任務拒絕策略

三、構(gòu)造函數(shù)參數(shù)解析

編寫測試類如下:

public class ThreadPoolSerialTest { public static void main(String[] args) {//核心線程數(shù)int corePoolSize = 2;//最大線程數(shù)int maximumPoolSize = 4;//超過corePoolSize線程數(shù)量的線程最大空閑時間long keepAliveTime = 2;//以秒為時間單位TimeUnit unit = TimeUnit.SECONDS;//創(chuàng)建工作隊列,用于存放提交的等待執(zhí)行任務BlockingQueue<Runnable> workQueue = new ArrayBlockingQueue<>(2);ThreadPoolExecutor threadPoolExecutor = null;try { // 1.創(chuàng)建線程池 threadPoolExecutor = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, new ThreadPoolExecutor.AbortPolicy()); // 2.循環(huán)提交任務 for (int i = 0; i < 6; i++) {//提交任務的索引final int index = (i+1);threadPoolExecutor.submit(()->{ //線程打印輸出 System.out.println('大家好,我是線程:'+index); try {//模擬線程執(zhí)行時間,10sThread.sleep(10000);System.out.println('線程:'+index+'運行完畢'); } catch (InterruptedException e) {e.printStackTrace(); }});//每個任務提交后休眠500ms再提交下一個任務,用于保證提交順序Thread.sleep(500); }} catch (InterruptedException e) { e.printStackTrace();} finally { // 3.關(guān)閉線程池 threadPoolExecutor.shutdown();} }}

其中循環(huán)了6次,讓線程池執(zhí)行了6次任務,恰好滿足maximumPoolSize+workQueue容量=并發(fā)執(zhí)行任務數(shù)。輸出結(jié)果如下:

大家好,我是線程:1大家好,我是線程:2大家好,我是線程:5大家好,我是線程:6線程:1運行完畢大家好,我是線程:3線程:2運行完畢大家好,我是線程:4線程:5運行完畢線程:6運行完畢線程:3運行完畢線程:4運行完畢

這段輸出看似沒有規(guī)律,其實這里輸出完全是由線程池控制的;下面就來分行解析輸出:

大家好,我是線程:1 大家好,我是線程:2大家好,我是線程:5大家好,我是線程:6

1.全新線程池被創(chuàng)建后,有Runnable或CallBack接口的實現(xiàn)被提交給線程池執(zhí)行;線程池的corePoolSize=2,此時前兩個任務提交后就立即執(zhí)行,便輸出了線程1 線程2;

2.此時仍繼續(xù)向線程池提交任務,線程池中workQueue容量=2,被加入的任務存放到任務隊列中,即把線程3 線程4存放到了任務隊列中;

3.任務隊列充滿后,仍繼續(xù)向線程池提交任務,線程池的maximumPoolSize=4,除開核心線程數(shù)2個外還允許創(chuàng)建4-2個線程來執(zhí)行任務,便輸出了線程5 線程6

線程:1運行完畢大家好,我是線程:3線程:2運行完畢大家好,我是線程:4

1.線程:1運行完畢:表示第一個線程任務執(zhí)行完畢了

2.大家好,我是線程:3:線程1運行完畢后,此時線程池中有一個空閑的線程,第一個進入任務隊列中的任務第一個交給線程處理

3.線程:2運行完畢 大家好,我是線程:4 :和上面線程執(zhí)行完畢,任務對列中任務執(zhí)行一致

線程:5運行完畢線程:6運行完畢線程:3運行完畢線程:4運行完畢

因為每一個任務的執(zhí)行時間控制的是一樣的,此時輸出的內(nèi)容便是先被線程池執(zhí)行的任務先執(zhí)行完畢。

四、總結(jié)

線程池剛被創(chuàng)建時,只是向系統(tǒng)申請一個用于執(zhí)行線程隊列和管理線程池的資源。在調(diào)用execute()添加一個任務時,線程池會按照以下流程執(zhí)行任務:

正在運行的線程數(shù)量a:a<corePoolSize,線程池立即創(chuàng)建線程并執(zhí)行任務;若此時a=corePoolSize,則任務被存放到workQueue任務隊列中,直到任務隊列被充滿

任務隊列workQueue已充滿且正在運行的線程數(shù)a:a<maximumPoolSize,線程池立即創(chuàng)建非核心線程并執(zhí)行任務;若有任務執(zhí)行完畢,該任務將被線程池隊列中移除,線程池從隊列中取先入隊的任務執(zhí)行;當線程處于空閑狀態(tài)的時間超過keepAliveTime時間時,正在運行的線程數(shù)acorePoolSize<a,線程池停止空閑的線程。線程池將任務執(zhí)行完畢后,線程池會收縮到corePoolSize大小

任務隊列workQueue已充滿且正在運行的線程數(shù)a:a=maximumPoolSize,線程池拒絕執(zhí)行該任務并拋出RejectExecutionException異常

淺談Java ThreadPoolExecutor的使用

到此這篇關(guān)于淺談Java ThreadPoolExecutor的使用的文章就介紹到這了,更多相關(guān)Java ThreadPoolExecutor內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
福利欧美精品在线| 日韩视频二区| 日本成人在线视频网站| 综合一区二区三区| 国产精品成人一区二区不卡| 亚洲一区不卡| 99久久久国产精品美女| 日韩不卡视频在线观看| 国产一区二区三区四区五区传媒| 99久久婷婷| 亚洲天堂久久| 国产农村妇女精品一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎| 婷婷国产精品| 黄色欧美日韩| 日本亚洲欧洲无免费码在线| 国产美女久久| 中文在线免费视频| 天堂日韩电影| 国产精品视区| 亚洲视频二区| 亚洲精品欧洲| 亚洲精品大片| 美女国产一区| 婷婷亚洲五月色综合| 午夜在线视频观看日韩17c| 亚洲精品在线国产| 欧美激情aⅴ一区二区三区 | 欧美日韩一视频区二区| 国产欧美欧美| 日韩成人三级| 蜜桃免费网站一区二区三区| 欧美日韩亚洲一区二区三区在线| 国产欧美日韩精品一区二区三区| 国产精品啊啊啊| 精品亚洲成人| 亚洲精品a级片| 日本欧美久久久久免费播放网| 国产三级一区| 亚洲风情在线资源| 蜜臀久久99精品久久久久久9| 综合激情婷婷| 麻豆精品在线| 在线日韩av| 日韩精品欧美精品| а√在线中文在线新版| 性一交一乱一区二区洋洋av| 国产精品午夜av| 91精品久久久久久久久久不卡| 欧美日韩精品免费观看视频完整| 男女激情视频一区| 麻豆国产精品| 久久av在线| 91嫩草亚洲精品| 亚洲天堂日韩在线| 久久青青视频| 三级久久三级久久久| 国产不卡精品| 亚洲影院天堂中文av色| 国产精选在线| 亚洲色图综合| 欧美aa在线观看| 亚洲理论在线| 日韩高清不卡| 国产精品一站二站| 国精品一区二区| 国产精品亚洲四区在线观看| 91成人精品视频| 精品不卡一区| 日韩毛片一区| 欧美va天堂| 精品福利久久久| 少妇精品久久久| 欧美亚洲国产精品久久| 国产精品99久久免费观看| 国产亚洲一区在线| 国产资源在线观看入口av| 午夜亚洲福利| 亚洲国产成人精品女人| 成人精品国产亚洲| 日韩欧美三区| 欧美精选一区二区三区| 久久精品国产免费| 四虎精品一区二区免费| 今天的高清视频免费播放成人| 国产午夜精品一区在线观看| 国产毛片久久| 91精品蜜臀一区二区三区在线| 国产欧美日韩精品一区二区免费| 91精品福利| 日韩电影免费网址| 精品一区二区男人吃奶| 国产日本精品| 亚洲精品九九| 亚洲免费播放| 中文字幕系列一区| 麻豆91精品91久久久的内涵| 日韩精品中文字幕吗一区二区| 久久国产直播| 中文字幕人成乱码在线观看| 欧美精品成人| 国产情侣久久| 欧美精品影院| 亚洲精品韩国| 在线国产日韩| 在线日韩成人| 蜜臀va亚洲va欧美va天堂| 五月精品视频| 91久久国产| 亚洲国产专区校园欧美| 久久久久久色| 视频一区中文字幕精品| 免费成人av在线播放| 久久国产66| 亚洲资源av| 午夜久久福利| 中文精品在线| 日韩视频一区| 国产一区成人| 免费人成网站在线观看欧美高清| 国产麻豆久久| 欧美日韩一二| 欧美高清不卡| 午夜欧美理论片| 亚洲作爱视频| 中文日韩欧美| 亚洲一区二区三区四区五区午夜| 亚洲高清激情| 99视频一区| 亚洲精品人人| 国产日韩中文在线中文字幕| 国产精品第十页| 老司机精品在线| а√天堂中文在线资源8| 欧美一区久久久| 99视频精品全国免费| 在线一区免费| 亚洲精品成a人ⅴ香蕉片| 久久国产人妖系列| 久久精品毛片| 国产美女高潮在线| 久久久久中文| 日韩亚洲精品在线| 日本不卡高清| 麻豆中文一区二区| 六月婷婷综合| 欧美.日韩.国产.一区.二区| 美女尤物久久精品| 97se亚洲| 国模大尺度视频一区二区| 日韩大片免费观看| 欧美日韩四区| 日本aⅴ精品一区二区三区| 国产欧美日韩在线一区二区| 成人在线视频中文字幕| 日本在线精品| 午夜宅男久久久| 69堂免费精品视频在线播放| 麻豆精品视频在线观看| 久久久精品午夜少妇| 午夜宅男久久久| 国产欧美日韩在线观看视频 | 国产精品久久久一区二区| 麻豆国产欧美一区二区三区 | 久久国内精品自在自线400部| 国产精品久久国产愉拍| 91视频一区| 99视频在线精品国自产拍免费观看| 亚洲免费一区二区| 国产亚洲欧美日韩精品一区二区三区 | 日韩视频久久| 亚洲欧洲美洲国产香蕉| 久久中文字幕一区二区三区| 日韩深夜视频| 亚洲精品88| 免费在线观看成人| 国产精品.xx视频.xxtv| 久久久久久黄| 天海翼精品一区二区三区| 麻豆国产一区| 亚洲少妇在线| 久久只有精品| 亚洲综合日韩| 精品一区二区三区的国产在线观看 | 久久精品资源| 蜜桃精品在线| 日韩福利视频网| 欧美精品日日操| 青青青国产精品| 91精品啪在线观看国产18| 日韩精品一区二区三区av| 精品99久久| 亚洲理论在线| 欧美影院三区| 国产精品mv在线观看| 亚洲少妇一区| 黄色在线观看www| 日本成人中文字幕| 九九久久电影| 激情综合婷婷|