阻塞队列作用:
1,自带阻塞和唤醒功能,
2,无任务执行时,线程池利用阻塞队列的take方法挂起,从而维持核心线程的存活,不至于一直占用cpu资源。
3,任务数超过了核心线程数量,就有保存任务的作用
有新任务时,为什么是先添加队列而不是先创建线程?
因为在创建新线程时,是要获取全局锁的,这个时候其他的线程就会阻塞,会影响整体效率。
放入阻塞队列中,有机会有休息的核心线程执行队列的任务,减少了创建新线程的消耗。
1,自带阻塞和唤醒功能,
2,无任务执行时,线程池利用阻塞队列的take方法挂起,从而维持核心线程的存活,不至于一直占用cpu资源。
3,任务数超过了核心线程数量,就有保存任务的作用
因为在创建新线程时,是要获取全局锁的,这个时候其他的线程就会阻塞,会影响整体效率。
放入阻塞队列中,有机会有休息的核心线程执行队列的任务,减少了创建新线程的消耗。