文章目录
一、线程池 execute 方法源码解析
- 一、线程池 execute 方法源码解析
- 二、线程池 execute 方法完整源码及注释
进入 ThreadPoolExecutor 中 , 查看线程池任务执行方法 public void execute(Runnable command) 的源码 ;
用户向线程池中提交任务时 , 主要执行了三个步骤 ,
第一步 : 核心线程数不足的情况
如果当前运行的线程 , 小于核心线程数 , 那么 创建一个新的核心线程 ,
将 传入的任务 作为该线程的 第一个任务 .
调用 addWorker 方法 , 会原子性 检查运行状态和任务数量 ;
如果在 不应该添加线程的情况下 执行添加线程操作 , 就会发出错误警报 ;
如果该方法返回 false , 说明 当前不能添加线程 , 此时就不要执行添加线程的操作了 ;
源码解析 : 如果当前的线程数小于核心线程数 , 则调用 addWorker(command, true) , 添加核心线程 , 第二个参数 true 表示该添加的线程是核心线程 ;
if (workerCountOf(c)
关注
打赏
热门博文
- 【Android Gradle 插件】Gradle 自定义 Plugin 插件 ③ ( 自定义插件作用 | Android Gradle 插件的扩展 | 自定义 Extension 扩展 )
- 【Android Gradle 插件】Gradle 构建生命周期 ③ ( BuildListener 构建监听器 | TaskExecutionGraphListener 任务执行图监听器 )
- 【Android Gradle 插件】Gradle 构建生命周期 ② ( Gradle 类的添加构建生命周期监听器函数 | Gradle#addListener 函数 )
- 【Android Gradle 插件】Gradle 构建生命周期 ① ( 分析构建脚本 | 执行初始化配置 | 执行 Gradle 任务 | Project#beforeEvaluate 函数 )
- 【Android Gradle 插件】自定义 Gradle 任务 ⑨ ( 控制 Gradle 执行任务顺序 | Task#finalizedBy 函数 | 控制 Gradle 执行任务顺序示例分析 )
- 【Android Gradle 插件】自定义 Gradle 任务 ⑧ ( 控制 Gradle 执行任务顺序 | Task#shouldRunAfter 函数 | 三个函数使用场景对比 )
- 【Android Gradle 插件】自定义 Gradle 任务 ⑦ ( 控制 Gradle 执行任务顺序 | Task#dependsOn 函数 | Task#mustRunAfter 函数 )
- 【数学分析】集合 ① ( 集合概念 | 集合表示 | 常用的数集合 | 集合的表示 )
- 【数学分析】学科简介 ( 初等数学缺陷 | 微分与积分 | 学习数学分析的目的 | 数学分析与高等数学对比 )
- 【Android Gradle 插件】自定义 Gradle 任务 ③ ( Gradle 自定义任务创建方法 Project#task 函数 | Task#doFirst 函数用法 )