线程池中阻塞队列的作用?为什么是先添加列队而不是先 创建最大线程?
1、一般的队列只能保证作为一个有限长度的缓冲区,如果超出了缓冲长度 ,就无法保留当前的任务
了,阻塞队列通过阻塞可以保留住当前想要继续入队的任务。
阻塞队列可以保证任务队列中没有任务时阻塞获取任务的线程,使得线程(当没有任务时,阻塞核心线程)进入wait状态,释放cpu资源。
阻塞队列自带阻塞和唤醒的功能,不需要额外处理,无任务执行时,线程池利用阻塞队列的take方法挂
起,从而维持核心线程的存活、不至于一直占用cpu资源。
2、在创建新线程的时候,是要获取全局锁的,这个时候其它的就得阻塞,影响了整体效率。
就好比一个企业里面有10个(core)正式工的名额,最多招10个正式工,要是任务超过正式工人数
(task > core)的情况下,工厂领导(线程池)不是首先扩招工人,还是这10人,但是任务可以稍微积
压一下,即先放到队列去(代价低)。10个正式工慢慢干,迟早会干完的,要是任务还在继续增加,超
过正式工的加班忍耐极限了(队列满了),就的招外包帮忙了(注意是临时工)要是正式工加上外包还
是不能完成任务,那新来的任务就会被领导拒绝了(线程池的拒绝策略)。
线程池中阻塞队列的作用?为什么是先添加列队而不是先 创建最大线程?相关推荐
- 线程池中阻塞队列的作用?为什么是先添加列队而不是先创建最大线程?线程池中线程复用原理
1.一般的队列只能保证作为一个有限长度的缓冲区,如果超出了缓冲长度,就无法保留当前的任务了,阻塞队列通过阻塞可以保留住当前想要继续入队的任务.阻塞队列可以保证任务队列中没有任务时阻塞获取任务的线程,使 ...
- 线程池中阻塞队列的作用?为什么是先添加列队而不是先创建最大线程?
线程池中阻塞队列的作用: ⼀般的队列只能保证作为⼀个有限⻓度的缓冲区,如果超出了缓冲⻓度,就⽆法保留当前的任务了,阻塞队列通过阻塞可以保留住当前想要继续⼊队的任务. 阻塞队列可以保证任务队列中没有任务 ...
- 【无标题】线程池中阻塞队列的作用,为什么是先添加队列而不是先创建最大线程
- 为什么用线程池?解释下线程池参数?线程池处理流程?阻塞队列的作用?为什么是先添加列队而不是先创建最大线程?线程池中线程复用原理?
为什么用线程池?解释下线程池参数? 1.降低资源消耗:提高线程利用率,降低创建和销毁线程的消耗. 2.提高响应速度:任务来了,直接有线程可用可执行,而不是先创建线程,再执行. 3.提高线程的可管理性: ...
- java线程池_Java多线程并发:线程基本方法+线程池原理+阻塞队列原理技术分享...
线程基本方法有哪些? 线程相关的基本方法有 wait,notify,notifyAll,sleep,join,yield 等. 线程等待(wait) 调用该方法的线程进入 WAITING 状态,只有等 ...
- JAVA线程池_并发队列工作笔记0002---认识线程池_在线程池中使用队列
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 上面是线程的执行周期 这个线程的生命周期,可以看到时间都浪费在了创建和销毁的这里了. 实际上执行业 ...
- Java线程池和阻塞队列
一.Java线程池的优点 1.降低资源消耗:通过重复利用线程池中已创建好的线程来降低线程创建和销毁造成的消耗. 2.提高响应速度:当任务到达时,任务可以直接拿到线程池中已创建好的线程立即执行. 3.提 ...
- 0.9.2、线程池——核心线程数、阻塞队列、最大线程数之间的关系
文章目录 线程池内部运行过程 验证思路 确保先提交的任务优先被线程池处理 确保执行的任务占有足够久的线程池资源 可观测的阻塞队列大小 充分的信息 代码 自定义线程池 结果 结论 基本几结论 新任务提交 ...
- Java 线程池原理和队列详解
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51701508 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...
最新文章
- 本科生晋升GM记录: Kaggle比赛进阶技巧分享
- oracle中把函数的执行权限赋个某个用户
- java.text._Java.text
- Python sorted 和 sort() 的区别
- 进程是如何使用内存的?
- IIS6.0应用程序池回收和工作进程【转:http://www.cnblogs.com/freshman0216/archive/2008/06/02/1212460.html】...
- Nature | IL-27直接靶向脂肪细胞以促进产热而改善肥胖
- 关于CASE WHEN的多条件汇总问题
- centos7搭建使用花生壳
- 自定义view绘制太极图案
- suffix tree学习
- linux vdi,linux – 调整vdi大小不能正常工作
- excel保存快捷键_这些快捷键,你都知道吗?
- 麒麟座迷你板STLINK使用
- 365 水壶问题(递归、数学-裴蜀定理)
- 微软危急: 20年转型未果 复兴路上最大敌人是自己
- CSS 垂直对齐vertical-align属性
- 滴滴云服务器搭建网站的一键脚本,一键搭建流控脚本 一键搭建云免流服务器...
- python中查看相对路径_python提取相对路径
- Linux下输入子系统上报触摸屏坐标
热门文章
- ES6 数组对象去重
- 硬件工程师面试集锦 模拟电路 数字电路 IC设计基础 单片机 信号与系统 DSP 嵌入式
- Mnist数据集 简单介绍
- 隐私计算的应用研究与趋势展望(上)
- 网页设计大作业模板-网页设计大作业(文房四宝 5页)-实训素材
- react项目搭建本地开发环境
- android测试版微信7.0下载地址,微信 7.0.9 for Android 全新发布,低调公布64位测试版下载地址...
- 多导睡眠扫描术PSG
- My Eclipse 软件解锁秘钥
- freenode一些关于irc的资料