ThreadPoolExecutor的原理及使用方法
来源:互联网 发布:手机用数据会出400bad 编辑:程序博客网 时间:2024/05/01 21:24
大家先从ThreadPoolExecutor的总体流程入手:
针对ThreadPoolExecutor代码,我们来看下execute方法:
我们再看下真正的线程执行者(Worker):
通过上述代码,总结下四个关键字的用法
- corePoolSize 核心线程数量
线程保有量,线程池总永久保存执行线程的数量
- maximumPoolSize 最大线程数量
最大线程量,线程最多不能超过此属性设置的数量,当大于线程保有量后,会新启动线程来满足线程执行。
- 线程存活时间
获取队列中任务的超时时间,当阈值时间内无法获取线程,则会销毁处理线程,前提是线程数量在corePoolSize 以上
- 执行队列
执行队列是针对任务的缓存,任务在提交至线程池时,都会压入到执行队列中。所以这里大家最好设置下队列的上限,防止溢出
ThreadPoolExecuter的几种实现
- CachedThreadPool 执行线程不固定,
坏处:只能用在短时间完成的任务(占用时间较长的操作可以导致线程数无限增大,系统资源耗尽)
- 单线程线程池
好处:针对单cpu,单线程避免系统资源的抢夺
坏处:多cpu多线程时,不能完全利用cpu资源
- 固定长度线程池
好处:线程数量固定,不会存在线程重复初始化
坏处:没有对队列大小进行限制,线程初始化后,再也不能回收线程资源
0 0
- ThreadPoolExecutor的原理及使用方法
- ThreadPoolExecutor原理及使用
- ThreadPoolExecutor原理及使用
- 线程池ThreadPoolExecutor的使用方法
- 游标的原理及使用方法
- BlockingQueue的原理及使用方法
- websevice的原理及使用方法
- 线程池ThreadPoolExecutor的原理
- java线程池ThreadPoolExecutor原理及使用
- SQL 游标的使用方法及原理
- GPIO-KEY的实现原理及使用方法
- uboot下netconsole的原理及使用方法
- 串口服务器的原理及使用方法
- Enum枚举的原理及各种使用方法
- ThreadPoolExecutor 原理
- ThreadPoolExecutor原理
- ThreadPoolExecutor原理
- epoll原理及使用方法
- hdu 5916 Harmonic Value Description
- OkHttp源码解析(四)——失败重连
- 会场安排问题核心思想与代码实现
- 试试水
- Android 粒子效果
- ThreadPoolExecutor的原理及使用方法
- spoj 375 Query on a tree(树链剖分,边,线段树)
- Esper 视图 Views窗口语法
- 【HDU】5789 Permutation【dp】
- C#设计模式之装饰模式(Decorator Pattern)
- 【Python错误】windows下使用pip/easy_install提示Fatal error in launcher: Unable to create process using...
- 顺序表应用7:最大子段和之分治递归法
- Java中常用的线程池介绍
- Split()---"." "|" "*" "\" "]"