文章目录
一、线程池 execute 方法源码解析
- 一、线程池 execute 方法源码解析
- 二、线程池 execute 方法完整源码及注释
进入 ThreadPoolExecutor 中 , 查看线程池任务执行方法 public void execute(Runnable command) 的源码 ;
用户向线程池中提交任务时 , 主要执行了三个步骤 ,
第一步 : 核心线程数不足的情况
如果当前运行的线程 , 小于核心线程数 , 那么 创建一个新的核心线程 ,
将 传入的任务 作为该线程的 第一个任务 .
调用 addWorker 方法 , 会原子性 检查运行状态和任务数量 ;
如果在 不应该添加线程的情况下 执行添加线程操作 , 就会发出错误警报 ;
如果该方法返回 false , 说明 当前不能添加线程 , 此时就不要执行添加线程的操作了 ;
源码解析 : 如果当前的线程数小于核心线程数 , 则调用 addWorker(command, true) , 添加核心线程 , 第二个参数 true 表示该添加的线程是核心线程 ;
if (workerCountOf(c)
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?