一、介绍
本文主要对之前写的多线程相关文章做一个整体的梳理与总结。
本文主要介绍多线程相关,具体如下:
二、多线程基础知识
2.1、进程与线程
主要介绍进程、线程、以及进程与线程的对比。
详见《线程与进程对比分析》
三、多线程的实现
1、基础使用
1.1、继承Thread类和实现Runnable创建子线程
Android多线实现的基础使用,主要通过继承Thread类和实现Runnable创建子线程。
详见《继承Thread和实现Runnable创建子线程详细介绍(含使用实例和对比分析)》
2、复合使用
Android多线程的复合使用主要包括AsyncTask、IntentService、HandlerThread。
2.1、AsyncTask
AsyncTask是一个Android已经封装好的异步类,可实现多线程和异步通信。
2.2、IntentService
IntentService也是一个封装好的多线程异步类,其继承了service。
详见《IntentService详细介绍(含使用实例及源码分析)》
2.3、HandlerThread
HandlerThread也是一个封装好的异步类,内部实现了Handler+Thread。
详见《HandlerThread原理、使用实例、源码详细解析》
3、高级使用
3.1、线程池ThreadPool
线程池主要实现线程复用和对线程的管理。
详见《线程池全面解析》
四、线程间通信
4.1、Handler
线程间通信,主要是通过handler实现,通过Handler+Looper+MessageQueue来实现多线间异步通信。
五、线程同步
5.1、Synchronized
多线程提高系统资源效率的同时,带来了线程安全性问题,主要通过加锁实现线程安全。
详见《Synchronized简单介绍(原理、使用、对比分析)》
六、线程局部变量
6.1、ThreadLocal
ThreadLocal是线程本地变量或线程局部变量,为每个线程提供一个特有的空间,保存线程特有的资源,实现线程隔离,防止数据共享。
详见《 ThreadLocal解析》
七、总结
前前后后用了两个月的时间,终于把Android多线程相关的知识总结了一遍,说一些个人的感受:
1、通过总结真的学到了很多东西,因为是总结,所以知识相对比较全面一些,起到了查缺补漏的作用,同时对之前经常用到的知识,加深了理解。
2、很多知识点自己在代码中也经常使用,但是真的整理起来,确实不容易,耗费了大量的时间和精力,但是很值得 。
3、这段时间工作也不忙,有时间坚持长久的做一件事,有时间就看看相关的书籍,查查相关的资料,在查看别人博客的同时发现了很多牛人,向他们学习。
4、Android多线程专题就写完了,继续下一个专题,坚持下去,积跬步,至千里!