前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >线程池

线程池

作者头像
longzeqiu
发布2021-11-24 14:06:55
5570
发布2021-11-24 14:06:55
举报
文章被收录于专栏:Android小知识Android小知识
  • 什么是线程池
  • 把线程进行池化,调用的时候直接去池里面去取,而不是每次去重新创建,不用的时候放回线程池,而不是直接销毁,从而达到复用。

为什么使用线程池

  • ①复用线程,降低创建以及销毁导致的资源消耗。
  • ②提高响应速度。
  • ③提高线程的可管理性,提升系统稳定性。

ThreadPoolExecutor

JDK提供的线程池

ThreadPoolExecutor的构造方法有七个参数

  • int corePoolSize核心线程数
  • int maximumPoolSize约定的线程最大数量
  • long keepAliveTime线程空闲的时候存活多久(但会保留核心线程数的线程数量)
  • TimeUnit unit时间单位
  • BlockingQueue<Runnable>workQueue线程超过核心线程数的部分放到阻塞队列中
  • ThreadFactory threadFactory线程工厂主要是给线程命名
  • RejectedExecutionHandler handler拒绝策略

缺省策略

RejectedExecutionHandler是一个接口,JDK提供了四种实现,如果都不合适,可以自己实现这个接口去处理。

  • DiscardOldestPolicy最早放入的先丢弃
  • AbortPolicy直接抛出异常,也是默认的策略
  • CallerRunsPolicy谁提交的谁执行
  • DiscardPolicy直接丢弃

合理配置线程池

任务的特性有关

  • CPU密集型 (大量计算型任务)不要超过机器上CPU同时运行的线程个数
  • IO密集型 (文件读写)2*CPU的个数(常见配置)
  • 混合型 尽量进行拆分
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/6/9 下午,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么使用线程池
  • ThreadPoolExecutor
  • 缺省策略
  • 合理配置线程池
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档