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