java
2021-06-11 19:57:51 2 举报
线程池
作者其他创作
大纲/内容
拿到任务
否
工作线程执行run
循环
是
执行任务run方法
判断take方法还是poll方法,通过allowCoreThreadTimeOut或者线程数是否大于核心线程数
移除此worker工作线程
提交任务到线程池
工作线程结束消亡
开始创建worker
成功
判断线程池是否run
判断是否创建工作线程成功
提交任务给线程池
Container
worker工作开始
false
加入工作线程
为空
判断任务是否为空
超过
worker执行run方法
加入额外线程
cas修改线程数量+1
创建worker加入worker数组
执行worker.thread.start方法
失败
任务完成
线程数量减一
按拒绝策略处理任务
判断数量是否已超过最大线程数,参数判断核心线程数或最大线程数
获取为空
判断线程数量是否小于核心线程数
判断线程是否运行中,是否加入队列成功
加入工作线程worker
0 条评论
下一页