概述
线程池七大核心参数如下:
1.corePoolSize核心线程数目-池中会保留的最多线程数。
2.maximumPoolSize最大线程数目-核心线程+救急线程的最大数目。
3.keepAliveTime生存时间-救急线程的生存时间,生存时间内没有新任务,此线程资源会释放。
4.unit时间单位-救急线程的生存时间单位,如秒、毫秒等。
5.workQueue-当没有空闲核心线程时,新来任务会加入到此队列排队,队列满会创建救急线程执行任务。
6.threadFactory线程工厂-可以定制线程对象的创建,例如设置线程名字、是否是守护线程等。
7.handler拒绝策略-当所有线程都在繁忙,workQueue也放满时,会触发拒绝策略
工作流程:
线程池内部是通过队列+线程实现的,当我们利⽤线程池执⾏任务时:
1.
如果此时线程池中的线程数量⼩于corePoolSize,即使线程池中的线程都处于空闲状态,也要创建
新的线程来处理被添加的任务。
2.
如果此时线程池中的线程数量等于corePoolSize,但是缓冲队列workQueue未满,那么任务被放⼊
缓冲队列。
3.
如果此时线程池中的线程数量⼤于等于corePoolSize,缓冲队列workQueue满,并且线程池中的数
量⼩于maximumPoolSize,建新的线程来处理被添加的任务。
4.
如果此时线程池中的线程数量⼤于corePoolSize,缓冲队列workQueue满,并且线程池中的数量等
于maximumPoolSize,那么通过 handler所指定的策略来处理此任务。
5.
当线程池中的线程数量⼤于 corePoolSize时,如果某线程空闲时间超过keepAliveTime,线程将被
终⽌。这样,线程池可以动态的调整池中的线程数
最后
以上就是鲜艳盼望为你收集整理的线程池的核心参数,工作流程的全部内容,希望文章能够帮你解决线程池的核心参数,工作流程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复