創(chuàng)建一個(gè)阻塞隊(duì)列來(lái)容納任務(wù),在次執(zhí)行任務(wù)時(shí)創(chuàng)建足夠多的線程,并處理任務(wù),之后每個(gè)工作線程自動(dòng)從任務(wù)隊(duì)列中獲取線程,直到任務(wù)隊(duì)列中任務(wù)為0為止,此時(shí)線程處于等待狀態(tài),一旦有工作任務(wù)加入任務(wù)隊(duì)列中,即刻喚醒工作線程進(jìn)行處理,實(shí)現(xiàn)線程的可復(fù)用性。
線程池一般包括四個(gè)基本組成部分:
1. 線程池管理器:用于創(chuàng)建線程池,銷毀線程池,添加新任務(wù)。
2. 工作線程:線程池中線程,可循環(huán)執(zhí)行任務(wù),在沒(méi)有任務(wù)時(shí)處于等待狀態(tài)。
3. 任務(wù)隊(duì)列:用于存放沒(méi)有處理的任務(wù),一種緩存機(jī)制。
4. 任務(wù)接口:每個(gè)任務(wù)必須實(shí)現(xiàn)的接口,供工作線程調(diào)度任務(wù)的執(zhí)行,主要規(guī)定了任務(wù)的開(kāi)始和收尾工作,和任務(wù)的狀態(tài)。