1.圖文概述
下圖所示為線程池的實現(xiàn)原理:調(diào)用方不斷地向線程池中提交任務(wù)认境;線程池中有一組線程胚委,不斷地從隊列中取任務(wù),這是一個典型的生產(chǎn)者—消費者模型叉信。
要實現(xiàn)這樣一個線程池亩冬,有幾個問題需要考慮:
- 隊列設(shè)置多長?如果是無界的硼身,調(diào)用方不斷地往隊列中放任務(wù)硅急,可能導(dǎo)致內(nèi)存耗盡。如果是有
界的佳遂,當(dāng)隊列滿了之后营袜,調(diào)用方如何處理? - 線程池中的線程個數(shù)是固定的丑罪,還是動態(tài)變化的连茧?
- 每次提交新任務(wù),是放入隊列巍糯?還是開新線程?
- 當(dāng)沒有任務(wù)的時候客扎,線程是睡眠一小段時間祟峦?還是進入阻塞?如果進入阻塞徙鱼,如何喚醒宅楞?