美文网首页
AsyncTask源码解析

AsyncTask源码解析

作者: 我就是非主流 | 来源:发表于2018-07-11 12:24 被阅读0次

变量

1. CPU_COUNT    CPU总数

2. CORE_POOL_SIZE    核心线程数

3. MAXIMUM_POOL_SIZE    最大线程数

4. KEEP_ALIVE_SECONDS    非核心线程空闲存活时间

5. sThreadFactory    线程工厂,用作与给线程起名字

6. sPoolWorkQueue    线程队列,最多容纳128个线程

7. THREAD_POOL_EXECUTOR    双队列线程池,可以执行并行任务,sPoolWorkQueue用于此线程池

8. SERIAL_EXECUTOR    单队列线程池,按任务顺序一个一个执行,无任务数量限制

9. sDefaultExecutor    默认的线程池,就是持有SERIAL_EXECUTOR的引用

10. sHandler    

11. mWorker

12. mFuture

13. mStatus

14. mCancelled

15. mTaskInvoked

16. mHandler

构造方法

1. AsyncTask()    调用了第三个构造,传空参数

2. AsyncTask(@Nullable Handler handler)    调用了第三个构造,传handler的Looper

3. AsyncTask(@Nullable Looper callbackLooper)    最主要的构造

        AsuncTask共有三个构造方法 ,但第一第二个最终都调用了第三个构造方法,所以第三个是关键,第三构造方法由三个部分组成,分别为Handler、WorkerRunnable、FutureTask。

构造函数

Handler:每一个AsyncTask实例都需要一个Handler来实现现成的切换,所以构造方法里创建了一个Handler,Handler的Looper分为主线程的和非主线程的,默认情况下是主线程的Looper,也可自定义传入非主线程Looper。

WorkerRunnable:是这个AsyncTask实例的工作任务,继承Callable,其核心在于在call方法内运行了doInBackground()方法,这就是异步任务,而AsyncTask选择用Callable而不是Runnable的意义在于Callable执行完任务会有返回结果,而Runnable没有,这正是AsyncTask的一个特点。

FutureTask:FutureTask是一个可取消的异步计算,一个FutureTask 可以用来包装一个 Callable 或是一个runnable对象。因为FurtureTask实现了Runnable方法,所以一个 FutureTask可以提交给一个Excutor执行。在AsyncTask中mFuture负责包装WorkerRunnable对象,并实现了done()方法返回执行结果。其中的get()方法为获取结果信息。

相关文章

  • Android AsyncTask 源码解析

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

  • 4.AsyncTask使用,原理

    资料 AsyncTask处理机制详解及源码分析-工匠若水 AsyncTask 源码解析-鸿洋 带你认识不一样的As...

  • Android日记之AsyncTask源码解析

    前言 AsyncTask的使用方法请看Android日记之AsyncTask的基本使用,此篇的源码解析我们还是从使...

  • AsyncTask原理解析

    AsyncTask是一个串行的线程,本文主要通过源码解析它的原理 -->从 AsyncTask执行的方法execu...

  • AsyncTask 源码解析

    一、前言AsyncTask是一个异步任务。里面封装了线程池及Handler。所以,它可以方便地实现线程的切换及耗时...

  • AsyncTask源码解析

    参考资料:Android开发艺术探索 AsyncTask是一个Android官方提供的一种轻量级的异步任务类,它可...

  • AsyncTask源码解析

    AsyncTask 执行轻量级的异步任务,将结果传递给主线程,主线程根据结果更新UI. 使用 AsyncTask创...

  • AsyncTask源码解析

    AsyncTask源码解析 最近再刷一些基础的东西,所以就随便记录了一些看源码的心得,目前开发中见到了很多Asyn...

  • AsyncTask源码解析

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

  • AsyncTask源码解析

    变量 1. CPU_COUNT CPU总数 2. CORE_POOL_SIZE 核心线程数 3.MAXIMUM...

网友评论

      本文标题:AsyncTask源码解析

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