關(guān)于線程池的復(fù)用原理,線程池原理這個(gè)問(wèn)題很多朋友還不知道,今天小六來(lái)為大家解答以上的問(wèn)題,現(xiàn)在讓我們一起來(lái)看看吧!
1、java線程池的實(shí)現(xiàn)原理很簡(jiǎn)單,說(shuō)白了就是一個(gè)線程集合workerSet和一個(gè)阻塞隊(duì)列workQueue。
2、當(dāng)用戶向線程池提交一個(gè)任務(wù)(也就是線程)時(shí),線程池會(huì)先將任務(wù)放入workQueue中。
3、workerSet中的線程會(huì)不斷的從workQueue中獲取線程然后執(zhí)行。
4、當(dāng)workQueue中沒(méi)有任務(wù)的時(shí)候,worker就會(huì)阻塞,直到隊(duì)列中有任務(wù)了就取出來(lái)繼續(xù)執(zhí)行。
5、2、線程池的幾個(gè)主要參數(shù)的作用corePoolSize: 規(guī)定線程池有幾個(gè)線程(worker)在運(yùn)行。
6、maximumPoolSize: 當(dāng)workQueue滿了,不能添加任務(wù)的時(shí)候,這個(gè)參數(shù)才會(huì)生效。
7、規(guī)定線程池最多只能有多少個(gè)線程(worker)在執(zhí)行。
8、keepAliveTime: 超出corePoolSize大小的那些線程的生存時(shí)間,這些線程如果長(zhǎng)時(shí)間沒(méi)有執(zhí)行任務(wù)并且超過(guò)了keepAliveTime設(shè)定的時(shí)間,就會(huì)消亡。
9、unit: 生存時(shí)間對(duì)于的單位workQueue: 存放任務(wù)的隊(duì)列threadFactory: 創(chuàng)建線程的工廠handler: 當(dāng)workQueue已經(jīng)滿了,并且線程池線程數(shù)已經(jīng)達(dá)到maximumPoolSize,將執(zhí)行拒絕策略。
本文分享完畢,希望對(duì)大家有所幫助。
標(biāo)簽:
免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請(qǐng)聯(lián)系刪除!