午夜无码人妻aⅴ大片色欲张津瑜,国产69久久久欧美黑人A片,色妺妺视频网,久久久久国产综合AV天堂

線程池的工作流程是什么

本篇內(nèi)容主要講解“線程池的工作流程是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“線程池的工作流程是什么”吧!

目前創(chuàng)新互聯(lián)已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、渠縣網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

線程池的各種參數(shù)

面試的時(shí)候最常問(wèn)的就是線程池的各種參數(shù)的含義,和線程池的整個(gè)運(yùn)行流程,這個(gè)一定要會(huì)

ThreadPoolExecutor一共有4個(gè)構(gòu)造函數(shù),但最后調(diào)用的都是如下構(gòu)造函數(shù)

參數(shù)含義
corePoolSize核心線程池大小
maximumPoolSize線程池最大容量大小
keepAliveTime線程池空閑時(shí),線程存活的時(shí)間
TimeUnit線程活動(dòng)保持時(shí)間的單位
BlockingQueue<Runnable>任務(wù)隊(duì)列,用于保存等待執(zhí)行的任務(wù)的阻塞隊(duì)列
ThreadFactory用于設(shè)置線程的工廠
RejectedExecutionHandler飽和策略

來(lái)類比學(xué)習(xí)一下這些參數(shù),我們把線程池類比為項(xiàng)目組,線程是這個(gè)公司的成員

corePoolSize:線程池中最少的線程數(shù),一個(gè)項(xiàng)目組總得有corePoolSize人堅(jiān)守陣地,都是簽訂勞動(dòng)合同了,不能隨便撤。

maximumPoolSize:當(dāng)項(xiàng)目很忙時(shí),就得加人,請(qǐng)其他項(xiàng)目組的人來(lái)幫忙。但是公司空間有限,最多只能加到maximumPoolSize個(gè)人。當(dāng)項(xiàng)目閑了,就得撤人了,最多能撤到corePoolSize個(gè)人

keepAliveTime &  unit:上面提到項(xiàng)目根據(jù)忙閑來(lái)增減人員,那在編程世界里,如何定義忙和閑呢?如果一個(gè)線程在keepAliveTime(時(shí)間數(shù)字)*  unit(時(shí)間單位)時(shí)間內(nèi)都沒(méi)有執(zhí)行任務(wù),說(shuō)明這個(gè)線程很閑。如果此時(shí)線程數(shù)大于corePoolSize,這個(gè)線程就要被回收了

workQueue:就是任務(wù)隊(duì)列

threadFactory:自定義如果創(chuàng)建線程,例如給線程指定一個(gè)有意義的名字

handler:workQueue滿了(排期滿了),再提交任務(wù),該怎么處理呢?這個(gè)就是處理策略,線程池提供了4種策略,你也可以實(shí)現(xiàn)RejectedExecutionHandler接口來(lái)自定義策略

策略
AbortPolicy丟棄任務(wù),拋運(yùn)行時(shí)異常(默認(rèn)的處理策略)
CallerRunsPolicy執(zhí)行任務(wù)
DiscardPolicy忽視,什么都不會(huì)發(fā)生
DiscardOldestPolicy丟棄隊(duì)列里最近的一個(gè)任務(wù),并執(zhí)行當(dāng)前任務(wù)

線程池的工作流程

可以參照一下源碼理解一下下面的流程

1.線程池剛創(chuàng)建時(shí),里面沒(méi)有一個(gè)線程。任務(wù)隊(duì)列是作為參數(shù)傳進(jìn)來(lái)的。不過(guò),就算隊(duì)列里面有任務(wù),線程池也不會(huì)馬上執(zhí)行他們。

2.當(dāng)調(diào)用execute()方法添加一個(gè)任務(wù)時(shí),線程池會(huì)做如下判斷:

a. 如果正在運(yùn)行的線程數(shù)量小于corePoolSize,那么馬上創(chuàng)建線程運(yùn)行這個(gè)任務(wù)

b. 如果正在運(yùn)行的線程數(shù)量大于或等于corePoolSize,那么將這個(gè)任務(wù)放入隊(duì)列

c. 如果這時(shí)候隊(duì)列滿了,而且正在運(yùn)行的線程數(shù)量小于maximunPoolSize,那么還是要?jiǎng)?chuàng)建非核心線程立刻運(yùn)行這個(gè)任務(wù)

d.  如果隊(duì)列滿了,而且正在運(yùn)行的線程數(shù)量大于或等于maximunPoolSize,那么線程池會(huì)拋出RejectedExecutionException

3.當(dāng)一個(gè)線程完成任務(wù)時(shí),它會(huì)從隊(duì)列中取下一個(gè)任務(wù)來(lái)執(zhí)行

4.當(dāng)一個(gè)線程無(wú)事可做,超過(guò)一定的時(shí)間(keepAliveTime)時(shí),線程池會(huì)判斷,如果當(dāng)前運(yùn)行的線程數(shù)大于corePoolSize,那么這個(gè)線程就被停掉。所以線程池的所有任務(wù)完成后,它最終會(huì)收縮到corePoolSize的大小

可以用如下圖來(lái)表示整體流程

線程池的工作流程是什么

到此,相信大家對(duì)“線程池的工作流程是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

網(wǎng)頁(yè)題目:線程池的工作流程是什么
URL地址:http://www.ekvhdxd.cn/article38/pdjhpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、ChatGPTApp設(shè)計(jì)網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)