您当前的位置: 首页 >  android

韩曙亮

暂无认证

  • 2浏览

    0关注

    1068博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Android 异步操作】线程池 ( 线程池 execute 方法源码解析 )

韩曙亮 发布时间:2020-11-02 11:37:24 ,浏览量:2

文章目录
  • 一、线程池 execute 方法源码解析
  • 二、线程池 execute 方法完整源码及注释

一、线程池 execute 方法源码解析

进入 ThreadPoolExecutor 中 , 查看线程池任务执行方法 public void execute(Runnable command) 的源码 ;

用户向线程池中提交任务时 , 主要执行了三个步骤 ,

第一步 : 核心线程数不足的情况

如果当前运行的线程 , 小于核心线程数 , 那么 创建一个新的核心线程 ,

将 传入的任务 作为该线程的 第一个任务 .

调用 addWorker 方法 , 会原子性 检查运行状态和任务数量 ;

如果在 不应该添加线程的情况下 执行添加线程操作 , 就会发出错误警报 ;

如果该方法返回 false , 说明 当前不能添加线程 , 此时就不要执行添加线程的操作了 ;

源码解析 : 如果当前的线程数小于核心线程数 , 则调用 addWorker(command, true) , 添加核心线程 , 第二个参数 true 表示该添加的线程是核心线程 ;

        if (workerCountOf(c)             
关注
打赏
1663594092
查看更多评论
0.0819s