面试题:线程池处理流程 没用

面试题:线程池处理流程 没用

大家好,又见面了,我是你们的朋友全栈君。

面试题:线程池处理流程 没用

 

①首先会判断核心线程池里是否有线程可执行,有空闲线程则创建一个线程来执行任务。

②当核心线程池里已经没有线程可执行的时候,此时将任务丢到任务队列中去。

③如果任务队列(有界)也已经满了的话,但运行的线程数小于最大线程池的数量的时候,此时将会新建一个线程用于执行任务,但如果运行的线程数已经达到最大线程池的数量的时候,此时将无法创建线程执行任务。

所以实际上对于线程池不仅是单纯地将任务丢到线程池,线程池中有线程就执行任务,没线程就等待。

 

 

 

另一种流程解释::::

step1.调用ThreadPoolExecutor的execute提交线程,首先检查CorePool,如果CorePool内的线程小于CorePoolSize,新创建线程执行任务。

step2.如果当前CorePool内的线程大于等于CorePoolSize,那么将线程加入到BlockingQueue。

step3.如果不能加入BlockingQueue,在小于MaxPoolSize的情况下创建线程执行任务。

step4.如果线程数大于等于MaxPoolSize,那么执行拒绝策略。

转载于:https://www.cnblogs.com/shan1393/p/9001201.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107537.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号