为什么用线程池

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

解释下线程池参数

  • corePoolSize
    核心线程数。线程池的基本大小,即在没有任务需要执行的时候线程池的大小,并且只有在工作队列满了的情况下才会创建超出这个数量的线程。

  • maximumPoolSize
    最大线程数。线程池中的当前线程数目不会超过该值。如果队列中任务已满,并且当前线程个数小于maximumPoolSize,那么会创建新的线程来执行任务。

  • keepAliveTime
    表示超出核心线程数之外的线程的空闲存活时间,也就是核心线程不会消除,但是超出核心线程数的部分线程如果空闲一定的时间则会被消除。

  • TimeUnit
    TimeUnit是keepAliveTime的时间单位

  • workQueue
    用来存放待执行的任务。假设核心线程都已被使用,还有任务进来则全部放入队列,直到整个队列被放满,如果任务还在持续进入则会开始创建新的线程 (前提是阻塞队列虽满,但线程池内线程数未达到最大线程数)。

  • ThreadFactory
    线程工厂,用来生产同一个组内的线程来执行任务。

    主要用于设置生成的线程名称前缀,是否为守护线程以及优先级等

    设置有意义的名称前缀有利于在进行虚拟机分析时,知道线程是由哪个线程工厂创建的

  • Handler 拒绝策略对象
    作用:当任务缓存达到上限时 (即超过workQueue参数能存储的任务数) ,然后就执行拒绝策略,可以看做简单的限流保护。

    有两种情况:
    第一种是调用shutdown()等方法关闭线程池后,这时候即使线程池内还有没执行完的任务正在执行,但是由于线程池已经关闭,我们还向线程提交任务就会拒绝。
    另一种情况是达到最大线程数后,线程池没有能力继续处理新提交的任务时,就会拒绝。


转载:
JUC并发编程基础之线程池和线程池参数_狂奔の蜗牛rz的博客-CSDN博客

为什么用线程池?解释下线程池参数? -- Java面试相关推荐

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

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

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

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

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

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

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

    为什么⽤线程池? 降低资源消耗:提⾼线程利⽤率,降低创建和销毁线程的消耗. 提⾼响应速度:任务来了,直接有线程可⽤可执⾏,⽽不是先创建线程,再执⾏. 提⾼线程的可管理性:线程是稀缺资源,使⽤线程池可以 ...

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

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

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

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

  8. 浅谈线程池(下):相关试验及注意事项

    三个月,整整三个月了,我忽然发现我还有三个月前的一个小系列的文章没有结束,我还欠一个试验!线程池是.NET中的重要组件,几乎所有的异步功能依赖于线程池.之前我们讨论了线程池的作用.独立线程池的存在意义 ...

  9. Linux下线程池(ThreadPool)

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

最新文章

  1. 基于Matlab的BP神经网络在语音特征信号识别中的应用
  2. C++之编码问题(Unicode,ASCII,本地默认)
  3. bootstrap基础学习十篇
  4. 锅巴文件共享软件地址和说明
  5. php生成 优惠券 激活码
  6. 应届生想要获取web前端开发岗位?这份技能攻略,面试攻略别错过
  7. 斑马打印机怎么打印二维码_简单介绍斑马打印机---GX430t
  8. C语言之生成汇编代码(十)
  9. 开启弹窗_【电脑优化】面对电脑开机“弹窗”雨,你也很无奈呀!
  10. 若依框架前端Vue项目分析实战
  11. java 硬盘序列号_java肿么获取硬盘序列号 iteye
  12. java cxf调用wsdl文件_如何使用CXF将 .wsdl 文件变成java文件
  13. 复数乘法的交换律、结合律及乘法 对加法的分配律证明过程
  14. java的StadIn函数_Java經典算法案例---Java深入
  15. linux yum vsftpd,CentOS 7 使用Yum方式安装配置vsftpd服务
  16. 查看思科交换机出厂时间
  17. 三维计算机视觉——相机内参和外参及坐标变换公式
  18. 蓝桥杯javaB决赛历届真题6-10届
  19. 怎么把pdf拆分成一页一页的单独文件?
  20. ERP系统31.83版本发布,八大新功能助力企业管理

热门文章

  1. ;按F11立即备份晓亮的电脑操作记录并打开记录.AU3 (AutoIt)
  2. 玩转Linux与运维岗(23)
  3. 浙江大学机械系制造所2010届毕业生…
  4. 计算机导论 宋斌,宋斌(计算机科学与技术学院)老师 - 南京理工大学 - 院校大全...
  5. [免费专栏] Android安全之Android Xposed插件开发,小白都能看得懂的教程
  6. 理财通app的设计与实现(六)
  7. Q版本 安卓手机录制系统声音
  8. 【实战技能】非技术背景经理的技术管理
  9. 监控摄像头接入GB28181平台实现监控视频直播的详细搭建流程
  10. Abbirb120型工业机器人_工控产品-ABB IRB120工业机器人-IRB120