为什么⽤线程池?

  1. 降低资源消耗提⾼线程利⽤率降低创建和销毁线程的消耗
  2. 提⾼响应速度;任务来了,直接有线程可⽤可执⾏,⽽不是先创建线程,再执⾏。
  3. 提⾼线程的可管理性;线程是稀缺资源,使⽤线程池可以统⼀分配调优监控。

线程池有哪些参数?

  1. corePoolSize 代表核⼼线程数,也就是正常情况下创建⼯作的线程数,这些线程创建后并不会消除,⽽是⼀种常驻线程
  2. maxinumPoolSize代表的是最⼤线程数,它与核⼼线程数相对应,表示最⼤允许被创建的线程数,⽐如当前任务较多,将核⼼线程数都⽤完了,还⽆法满⾜需求时,此时就会创建新的线程,但是线程池内线程总数不会超过最⼤线程数
  3. ThreadFactory实际上是⼀个线程⼯⼚,⽤来⽣产线程执⾏任务。我们可以选择使⽤默认的创建⼯⼚,产⽣的线程都在同⼀个组内,拥有相同的优先级,且都不是守护线程。当然我们也可以选择⾃定义线程⼯⼚,⼀般我们会根据业务来制定不同的线程⼯⼚
  4. workQueue⽤来存放待执⾏的任务,假设我们现在核⼼线程都已被使⽤,还有任务进来则全部放⼊队列,直到整个队列被放满但任务还再持续进⼊则会开始创建新的线程
  5. keepAliveTimeunit表示超出核⼼线程数之外的线程的空闲存活时间,也就是核⼼线程
    不会消除,但是超出核⼼线程数的部分线程如果空闲⼀定的时间则会被消除,我们可以通过 setKeepAliveTime 来设置空闲时间

  6. Handler任务拒绝策略,有两种情况,第⼀种是当我们调⽤ shutdown 等⽅法关闭线程池
    后,这时候即使线程池内部还有没执⾏完的任务正在执⾏,但是由于线程池已经关闭,我们再继续想线程池提交任务就会遭到拒绝。另⼀种情况就是当达到最⼤线程数,线程池已经没有能⼒继续处理新提交的任务时,这是也就拒绝

为什么⽤线程池?解释下线程池参数?相关推荐

  1. 为什么用线程池?解释下线程池参数? -- Java面试

    为什么用线程池 降低资源消耗.提高线程利用率,降低创建和小回县城的损耗. 提高响应速度.任务来了,直接有线程可用,而不是先创建线程再执行. 提高线程的可管理性.使用线程池可以统一分配调优监控. 解释下 ...

  2. 为什么用线程池?解释下线程池参数?线程池处理流程?阻塞队列的作用?为什么是先添加列队而不是先创建最大线程?线程池中线程复用原理?

    为什么用线程池?解释下线程池参数? 1.降低资源消耗:提高线程利用率,降低创建和销毁线程的消耗. 2.提高响应速度:任务来了,直接有线程可用可执行,而不是先创建线程,再执行. 3.提高线程的可管理性: ...

  3. 谈谈面试题之为什么用线程池?解释下线程池参数?

    一.为什么用线程池 1.降低资源消耗:提高线程利用率,降低创建和销毁线程的消耗. 2.提高响应速度:任务来了,直接有线程可用可执行,而不是先创建线程,再执行. 3.提高线程的可管理性:线程是稀缺资源 ...

  4. 为什么用线程池?解释下线程池参数?

    1.降低资源消耗:提高线程利用率,降低创建和销毁线程的消耗. 2.提高响应速度:任务来了,直接有线程可用可执行,而不是先创建线程,再执行. 3.提高线程的可管理性:线程是稀缺资源,使用线程池可以统一分 ...

  5. linux+分离线程+退出,Linux下线程终止操作.pdf

    Linux Linux LLiinnuuxx下线程的终止操作 简介: 简介: 简简介介:: 编写Linux下的多线程程序,需要使用头文件pthread.h, 编写Linux下的多线程程序,需要使用头文 ...

  6. 面试题 为什么用线程池?解释下线程池参数

  7. 为什么使用线程池,解释下线程池参数

  8. linux下c语言线程传参数,【linux】C语言多线程中运行线程池,在线程池中运行线程池,,传递的结构体参数值为空/NULL/0...

    C语言多线程中运行线程池,在线程池中运行线程池,,传递的结构体参数值为空/NULL/0 本贴问题,之前已经提问过一次,当时已经解决了,原贴在这里https://segmentfault.com/q/1 ...

  9. Linux下线程池(ThreadPool)

    目录 一.线程池相关概念及其优点 二.线程池的实现 一.线程池相关概念及其优点 线程池一种线程使用模式,线程过多会带来这个调度的开销进而影响整体的性能,而线程池是提前准备好了线程等待着管理者进行分配任 ...

最新文章

  1. CentOS7下vsftp配置
  2. python scipy卷积 图像卷积
  3. SQL对象名无效怎么办法 华骨龙
  4. Lodop 打印控件
  5. linux错误代码0x8008005,利用Windows10自带Linux学习(附带:0x8007019e错误解决方法)...
  6. r 64位连接mysql_R与Mysql数据库连接的两种方法
  7. ZigBee TI ZStack CC2530 8.4 如何用高版本IAR打开低版本协议栈
  8. js中的charAt,indexOf
  9. COSCon'20 Apache Roadshow- China 精彩收官 | 数据篇
  10. tdav_converter_video.cxx:49:9: error: ‘uint8’ does not name a type; did you mean ‘uint’?
  11. 【SQL Server】入门教程-基础篇(四)
  12. python--修改证件照的大小
  13. STM32库函数版IIC驱动OLED屏
  14. python画思维导图的英文_如何使用python做出思维导图
  15. Fater-RCNN
  16. 计算机编程英语单词多少,计算机编程常用英语单词
  17. Excel表格生成sql数据
  18. CCF C³活动第二期主题“智能家居”,与CTO聚首小米科技园!
  19. 多测师肖sir_高级金牌讲师_第2个月第18讲jenkins(001)
  20. 2022下半年火爆互联网商业模式揭晓,乐分享如何超强吸粉?详解

热门文章

  1. xgboost时间序列预测matlab,LightGBM和XGBoost实现时间序列预测(2019-04-02)
  2. 阿里云无影云桌面服务关联角色设置及删除方法
  3. Linux下手动查杀木马
  4. LiveData+Room
  5. 微信公众号中,怎么插入代码块?(微信公众号中,代码块怎么排版?)
  6. uniapp根据ui设计图实现新增和删除功能
  7. 定期存款怎么存定期存款怎么存?银行定期存款怎么存最划算?
  8. sohu_news搜狐新闻类型分类
  9. 抓取新浪微博好友昵称和性别
  10. 项目经历怎么写_工作经历、项目经验怎么写?