线程池工作原理
2023-08-22 18:31:31 18 举报
线程池工作原理
作者其他创作
大纲/内容
task
thread
阻塞队列 BlockingQueue
有空闲,则重用
maximumPoolSize=10
execute
是,并且所有线程都在工作,假如继续提交任务
2、再提交5个任务,再创建5个核心线程,此时核心线程数达到最大值6
核心线程空闲,会从队列中取任务
RejectedExecutionHandler拒绝策略
没有空闲,task先放到阻塞队列中排队
未放满
是否有空闲核心线程
阻塞队列是否放满
否,创建,直到达到最大值4
3、假如核心线程都在工作,提交的任务放到阻塞队列排队。然后核心线程执行完一个任务,会从阻塞队列取任务执行
否,则创建
注意:提交任务,如果核心线程未全部创建。核心线程就算空闲也不会重用
1、提交task1创建一个核心线程
corePoolSize=6
核心线程是否全部创建
是否达到最大值
已放满,创建非核心线程
是
0 条评论
回复 删除
下一页