美文网首页
【Android源码分析】AsyncTask

【Android源码分析】AsyncTask

作者: ChiangCMBA | 来源:发表于2018-08-16 22:49 被阅读0次

生产者消费者线程模式

25fps
60fps

MessageQueue 库存

AsyncTask 异步任务

Callable
Future

异步任务执行的结果,主线程无法轻易的获取

Java FutureTask 异步任务操作提供了便利性
1.获取异步任务的返回值
2.监听异步任务的执行完毕
3.取消异步任务

doBackground(call)
call的返回值在Future的done方法中获取

->onPostExecute

new MyTask().execute();

实例化:
new AsyncTask() -> new FutureTask()

执行:
Executor.execute(mFuture) -> SerialExecutor.myTasks(队列)
-> (线程池)THREAD_POOL_EXECUTOR.execute

线程池中的所有线程,为了执行异步任务

CORE_POOL_SIZE 核心线程数
MAXIMUM_POOL_SIZE 最大线程数量
KEEP_ALIVE 1s闲置回收
TimeUnit.SECONDS 时间单位
sPoolWorkQueue 异步任务队列
sThreadFactory 线程工厂

如果当前线程池中的数量小于corePoolSize,创建并添加的任务。
如果当前线程池中的数量等于corePoolSize,缓冲队列 workQueue未满,那么任务被放入缓冲队列、等待任务调度执行。
如果当前线程池中的数量大于corePoolSize,缓冲队列workQueue已满,并且线程池中的数量小于maximumPoolSize,新提交任务会创建新线程执行任务。
如果当前线程池中的数量大于corePoolSize,缓冲队列workQueue已满,并且线程池中的数量等于maximumPoolSize,新提交任务由Handler处理。
当线程池中的线程大于corePoolSize时,多余线程空闲时间超过keepAliveTime时,会关闭这部分线程。

public static final Executor THREAD_POOL_EXECUTOR
= new ThreadPoolExecutor(CORE_POOL_SIZE, MAXIMUM_POOL_SIZE, KEEP_ALIVE,
TimeUnit.SECONDS, sPoolWorkQueue, sThreadFactory);

1.线程池容量不够抛出异常
2.内存泄露
3.一个线程,一个异步任务(?)

相关文章

  • Android源码解析-Asynctask

    android源码分析-AsyncTask 我们一般创建一个AsyncTask的任务代码如下: 下面开始分析源码:...

  • Android AsyncTask 源码解析

    标签:Android AsyncTask 源码解析 1.关于AsyncTask 1.1 什么是AsyncTask?...

  • AsyncTask异步任务类

    目录介绍 01.先看下AsyncTask用法 02.AsyncTask源码深入分析2.1 构造方法源码分析2.2 ...

  • 【Android源码分析】AsyncTask

    生产者消费者线程模式 25fps60fps MessageQueue 库存 AsyncTask 异步任务 Call...

  • Android 源码分析 - AsyncTask

      不知道为什么,最近感觉喜欢上了分析源码了。哈哈,今天我们分析一下AsyncTask的源码,来了解一下这个异步类...

  • Android AsyncTask源码分析

    1. AsyncTask 框架图 a. 线程相关接口Callable 表示的任务可以抛出受检查的或未受检查的异常...

  • Android AsyncTask源码分析

    1. 基本用法 第一个 对应doInBackground 指定需要传入的参数, 第二个 对应onProgres...

  • 【Android】AsyncTask源码分析

    在Android中ui是非线程安全的,更新ui只能在主线程操作,所以我们平时如果遇到子线程更新UI的情况,必须要切...

  • android AsyncTask 源码分析

    使用 AsyncTask的使用不是本文的重点,我相信读者也不是来了解这个的,所以就先简单的介绍下它的使用,帮助大家...

  • AsyncTask源码解析

    参考资料 鸿洋版AsyncTask郭霖版AsyncTask线程池Android开发艺术探索Android源码 相关...

网友评论

      本文标题:【Android源码分析】AsyncTask

      本文链接:https://www.haomeiwen.com/subject/cejabftx.html