64㎡年輕小夫妻的家,三居改一居,安放屋主的所有喜好!
2023-01-30
更新時(shí)間:2022-03-22 09:08:09作者:未知
1、java線程池的實(shí)現(xiàn)原理很簡(jiǎn)單,說(shuō)白了就是一個(gè)線程集合workerSet和一個(gè)阻塞隊(duì)列workQueue。當(dāng)用戶向線程池提交一個(gè)任務(wù)(也就是線程)時(shí),線程池會(huì)先將任務(wù)放入workQueue中。workerSet中的線程會(huì)不斷的從workQueue中獲取線程然后執(zhí)行。當(dāng)workQueue中沒(méi)有任務(wù)的時(shí)候,worker就會(huì)阻塞,直到隊(duì)列中有任務(wù)了就取出來(lái)繼續(xù)執(zhí)行。
2、線程池的幾個(gè)主要參數(shù)的作用
corePoolSize: 規(guī)定線程池有幾個(gè)線程(worker)在運(yùn)行。
maximumPoolSize: 當(dāng)workQueue滿了,不能添加任務(wù)的時(shí)候,這個(gè)參數(shù)才會(huì)生效。規(guī)定線程池最多只能有多少個(gè)線程(worker)在執(zhí)行。
keepAliveTime: 超出corePoolSize大小的那些線程的生存時(shí)間,這些線程如果長(zhǎng)時(shí)間沒(méi)有執(zhí)行任務(wù)并且超過(guò)了keepAliveTime設(shè)定的時(shí)間,就會(huì)消亡。
unit: 生存時(shí)間對(duì)于的單位
workQueue: 存放任務(wù)的隊(duì)列
threadFactory: 創(chuàng)建線程的工廠
handler: 當(dāng)workQueue已經(jīng)滿了,并且線程池線程數(shù)已經(jīng)達(dá)到maximumPoolSize,將執(zhí)行拒絕策略。