亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

基于線程池的工作原理與源碼解讀

2024-07-13 10:15:45
字體:
來源:轉載
供稿:網友

隨著cpu核數越來越多,不可避免的利用多線程技術以充分利用其計算能力。所以,多線程技術是服務端開發人員必須掌握的技術。

線程的創建和銷毀,都涉及到系統調用,比較消耗系統資源,所以就引入了線程池技術,避免頻繁的線程創建和銷毀。

在Java用有一個Executors工具類,可以為我們創建一個線程池,其本質就是new了一個ThreadPoolExecutor對象。線程池幾乎也是面試必考問題。本節結合源代碼,說說ThreadExecutor的工作原理

一、線程池創建

先看一下ThreadPoolExecutor參數最全的構造方法:

線程池,工作原理,源碼

①corePoolSize:線程池的核心線程數,說白了就是,即便是線程池里沒有任何任務,也會有corePoolSize個線程在候著等任務。

②maximumPoolSize:最大線程數,不管你提交多少任務,線程池里最多工作線程數就是maximumPoolSize。

③keepAliveTime:線程的存活時間。當線程池里的線程數大于corePoolSize時,如果等了keepAliveTime時長還沒有任務可執行,則線程退出。

⑤unit:這個用來指定keepAliveTime的單位,比如秒:TimeUnit.SECONDS。

⑥workQueue:一個阻塞隊列,提交的任務將會被放到這個隊列里。

⑦threadFactory:線程工廠,用來創建線程,主要是為了給線程起名字,默認工廠的線程名字:pool-1-thread-3。

⑧handler:拒絕策略,當線程池里線程被耗盡,且隊列也滿了的時候會調用。

以上就是創建線程池時用到的參數,面試中經常會有面試官問道這個問題。

二、線程池執行流程

這里用一個圖來說明線程池的執行流程

線程池,工作原理,源碼

任務被提交到線程池,會先判斷當前線程數量是否小于corePoolSize,如果小于則創建線程來執行提交的任務,否則將任務放入workQueue隊列,如果workQueue滿了,則判斷當前線程數量是否小于maximumPoolSize,如果小于則創建線程執行任務,否則就會調用handler,以表示線程池拒絕接收任務。

這里以jdk1.8.0_111的源代碼為例,看一下具體實現。

1、先看一下線程池的executor方法

線程池,工作原理,源碼

①:判斷當前活躍線程數是否小于corePoolSize,如果小于,則調用addWorker創建線程執行任務

②:如果不小于corePoolSize,則將任務添加到workQueue隊列。

③:如果放入workQueue失敗,則創建線程執行任務,如果這時創建線程失敗(當前線程數不小于maximumPoolSize時),就會調用reject(內部調用handler)拒絕接受任務。

2、再看下addWorker的方法實現

線程池,工作原理,源碼

這塊代碼是在創建非核心線程時,即core等于false。判斷當前線程數是否大于等于maximumPoolSize,如果大于等于則返回false,即上邊說到的③中創建線程失敗的情況。

addWorker方法的下半部分:

線程池,工作原理,源碼

①創建Worker對象,同時也會實例化一個Thread對象。

②啟動啟動這個線程

3、再到Worker里看看其實現

線程池,工作原理,源碼

可以看到在創建Worker時會調用threadFactory來創建一個線程。上邊的②中啟動一個線程就會觸發Worker的run方法被線程調用。

4、接下來咱們看看runWorker方法的邏輯

線程池,工作原理,源碼

線程調用runWoker,會while循環調用getTask方法從workerQueue里讀取任務,然后執行任務。只要getTask方法不返回null,此線程就不會退出。

5、最后在看看getTask方法實現

線程池,工作原理,源碼

①咱們先不管allowCoreThreadTimeOut,這個變量默認值是false。wc>corePoolSize則是判斷當前線程數是否大于corePoolSize。

②如果當前線程數大于corePoolSize,則會調用workQueue的poll方法獲取任務,超時時間是keepAliveTime。如果超過keepAliveTime時長,poll返回了null,上邊提到的while循序就會退出,線程也就執行完了。

如果當前線程數小于corePoolSize,則會調用workQueue的take方法阻塞在當前。

以上這篇基于線程池的工作原理與源碼解讀就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲大胆美女视频| 久久久久一本一区二区青青蜜月| 欧美极品美女视频网站在线观看免费| 久久视频国产精品免费视频在线| 亚洲欧美在线磁力| 久久精品国产一区| 国产精品亚洲欧美导航| 国产精品爱久久久久久久| 国产精品入口免费视频一| 欧美激情综合色| 国产97在线视频| 日韩激情av在线播放| 日韩在线中文视频| 国产国语videosex另类| 韩剧1988免费观看全集| 海角国产乱辈乱精品视频| 亚洲精品自在久久| 欧美视频中文字幕在线| 91美女片黄在线观看游戏| 欧美另类精品xxxx孕妇| 国产精选久久久久久| 最近免费中文字幕视频2019| 日韩欧美在线观看视频| 国产精品免费一区豆花| 精品国产依人香蕉在线精品| 久久天天躁狠狠躁夜夜av| 欧美高清videos高潮hd| 欧美一级大片视频| 欧美黄色免费网站| 中文字幕亚洲无线码在线一区| 亚洲精品视频在线观看视频| 青青a在线精品免费观看| 69久久夜色精品国产7777| 国产成人精品视频| 日韩av在线播放资源| 亚洲男人天天操| 在线看国产精品| 91免费版网站入口| 精品视频在线播放免| 91精品免费久久久久久久久| 亚洲字幕在线观看| 欧美激情性做爰免费视频| 国产欧美日韩最新| 成人网页在线免费观看| 久久久久久久久91| 欧美精品午夜视频| x99av成人免费| 亚洲在线观看视频网站| 中文字幕欧美亚洲| 亚洲免费视频一区二区| 日韩免费黄色av| 亚洲国产天堂久久国产91| 日本国产一区二区三区| 在线视频中文亚洲| 欧美成人午夜剧场免费观看| 欧美国产一区二区三区| 欧美亚洲国产视频小说| 亚洲精品视频在线观看视频| 亚洲精品福利资源站| 深夜福利日韩在线看| 最好看的2019的中文字幕视频| 国产日韩精品一区二区| 亚洲欧美中文日韩v在线观看| 欧美孕妇孕交黑巨大网站| 亚洲自拍偷拍色片视频| 国产女同一区二区| 日韩av资源在线播放| 国产亚洲欧美日韩美女| 欧美裸体xxxxx| 欧美中文字幕视频| 久久久亚洲国产天美传媒修理工| 国产免费一区二区三区在线观看| 国产精品一区av| 亚洲第一精品自拍| 亚洲无av在线中文字幕| 在线看福利67194| 国产精品高潮呻吟久久av野狼| 国产盗摄xxxx视频xxx69| 亚洲美女黄色片| 91av在线不卡| 亚洲成人a**站| 亚洲无线码在线一区观看| 精品国产依人香蕉在线精品| 久久91亚洲精品中文字幕奶水| 亚洲va久久久噜噜噜久久天堂| 高清日韩电视剧大全免费播放在线观看| 国产最新精品视频| 成人亲热视频网站| 日韩美女视频免费看| 亚洲国产精品女人久久久| 人人澡人人澡人人看欧美| 欧洲精品在线视频| 日韩中文字幕在线视频播放| 亚洲人线精品午夜| 热久久美女精品天天吊色| 成人深夜直播免费观看| 日韩69视频在线观看| 国产精品一区二区三区免费视频| 91久久久久久久一区二区| 成人97在线观看视频| 欧美激情a∨在线视频播放| 久久99国产精品久久久久久久久| 国产成人精品免高潮费视频| 在线亚洲国产精品网| 国产精品久久久久久久久久三级| 精品一区二区三区三区| 亚州av一区二区| 亚洲欧洲日产国码av系列天堂| 国产一区二区三区精品久久久| 国产成人精品视| 91精品国产高清久久久久久久久| 国产精品久久二区| 欧美夜福利tv在线| 国产精品海角社区在线观看| 日韩一区二区福利| 国产精品第2页| 97视频免费看| 91精品国产自产在线老师啪| 日韩欧美黄色动漫| 色综合五月天导航| 亚洲国产成人在线视频| 日本中文字幕不卡免费| 日本高清不卡的在线| 国产精品久久97| 亚洲人在线观看| 欧美在线影院在线视频| 欧美国产日韩在线| 国产欧美日韩亚洲精品| 欧美福利小视频| 蜜臀久久99精品久久久无需会员| 国产一区二区三区毛片| 一本色道久久综合狠狠躁篇怎么玩| 最近2019年好看中文字幕视频| 中文字幕不卡在线视频极品| 欧美黄网免费在线观看| 日韩欧美在线视频| 久久精品99久久久香蕉| 亚洲第一福利网站| 久久久久久久久久国产精品| 久久不射电影网| 欧美交受高潮1| 亚洲图中文字幕| 亚洲精品国产品国语在线| 日韩在线观看免费网站| 亚洲免费电影一区| 国产999在线| 国产日韩欧美综合| 久久精品国产成人精品| 国产精品久久国产精品99gif| 久久天天躁狠狠躁夜夜爽蜜月| 在线国产精品播放| 欧美日本啪啪无遮挡网站| 日韩在线观看你懂的| 91久久精品美女| 中日韩美女免费视频网址在线观看| 欧美激情18p| 欧美主播福利视频| 欧美成在线观看| 91精品视频网站| 欧美激情女人20p| 日产日韩在线亚洲欧美| 国产日韩av在线播放| 久久久亚洲国产天美传媒修理工| 日韩美女免费观看|