首页 > 编程语言 > 详细

线程池中阻塞队列的最用?为什么是先添加队列而不是先创建最大线程

时间:2021-05-20 22:23:05      阅读:56      评论:0      收藏:0      [点我收藏+]

1、一般的队列只能保证作为一个有限长度的缓冲区,如果超出了缓冲长度,就无法保留当前的任务了,阻塞队列通过阻塞可以保留住当前想要继续入队的任务。
阻塞队列可以保证任务队列中没有任务时阻塞来获取任务的线程(即线程池中没有任务时,阻塞核心线程),使得线程进入wait状态,释放cpu
阻塞队列自带阻塞和唤醒功能,不需要额外处理,无任务执行时,线程池利用阻塞队列的take方法挂起,从而维持核心线程的存活,不至于一直占有cpu资源。

2、在创建新线程的时候,是要获取全局锁的,这个时候其他的线程就需要阻塞,影响了整体的性能。

线程池中阻塞队列的最用?为什么是先添加队列而不是先创建最大线程

原文:https://www.cnblogs.com/liuzhidao/p/14790024.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!