一. 前言
Android多线程的三种使用方式:
二. 基础使用
1. 继承Thread类
参考:Java 多线程
优点:实现简单。
缺点:局限性大,不适合资源共享,消耗资源。
2. 实现Runable接口
参考:Java 多线程
优点:适合资源共享,灵活。
3. Handler
参考:有用的Handler
意义:多个线程并发更新UI的同时,保证线程安全。
三. 复合使用
”复合“ 的原因是:本质原理都是 Android多线程基础实现(继承Thread类、实现Runnable接口、Handler)的组合实现。
1. AsyncTask
优点:
- 方便实现异步通信:不需要使用 任务线程 + Handler 的复杂组合。
- 节省资源:内部采用线程池的缓存线程 + 复用线程,避免了频繁创建和销毁线程所带来的系统开销。
2. HandlerThread
优点:方便实现异步通信:不需要使用 任务线程 + Handler 的复杂组合。
3. IntentService
最常见的情景:离线下载。
四. 高级使用
优点:
- 降低因线程的创建和销毁所带来的性能开销(通过重用缓存在线程池的线程)。
- 提高线程的响应速度和执行效率(重用线程达到不需要创建线程即可马上执行,线程管理可以优化线程的执行顺序)。