線程池中阻塞隊列的最用?為什么是先添加隊列而不是先創建最大線程


1、一般的隊列只能保證作為一個有限長度的緩沖區,如果超出了緩沖長度,就無法保留當前的任務了,阻塞隊列通過阻塞可以保留住當前想要繼續入隊的任務。
阻塞隊列可以保證任務隊列中沒有任務時阻塞來獲取任務的線程(即線程池中沒有任務時,阻塞核心線程),使得線程進入wait狀態,釋放cpu
阻塞隊列自帶阻塞和喚醒功能,不需要額外處理,無任務執行時,線程池利用阻塞隊列的take方法掛起,從而維持核心線程的存活,不至於一直占有cpu資源。

2、在創建新線程的時候,是要獲取全局鎖的,這個時候其他的線程就需要阻塞,影響了整體的性能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM