这是一份全面详细的Android多线程学习总结

一、介绍

本文主要对之前写的多线程相关文章做一个整体的梳理与总结。

本文主要介绍多线程相关,具体如下:

这是一份全面详细的Android多线程学习总结_第1张图片

二、多线程基础知识

2.1、进程与线程

主要介绍进程、线程、以及进程与线程的对比。

详见《线程与进程对比分析》

三、多线程的实现

1、基础使用

1.1、继承Thread类和实现Runnable创建子线程

Android多线实现的基础使用,主要通过继承Thread类和实现Runnable创建子线程。

详见《继承Thread和实现Runnable创建子线程详细介绍(含使用实例和对比分析)》

2、复合使用

Android多线程的复合使用主要包括AsyncTask、IntentService、HandlerThread。

2.1、AsyncTask

AsyncTask是一个Android已经封装好的异步类,可实现多线程和异步通信。

详见:《AsyncTask使用详细介绍(含使用实例)》

《AsyncTask原理和源码解析》

《AsyncTask存在的问题和缺陷》

2.2、IntentService

IntentService也是一个封装好的多线程异步类,其继承了service。

详见《IntentService详细介绍(含使用实例及源码分析)》

2.3、HandlerThread

HandlerThread也是一个封装好的异步类,内部实现了Handler+Thread。

详见《HandlerThread原理、使用实例、源码详细解析》

3、高级使用

3.1、线程池ThreadPool

线程池主要实现线程复用和对线程的管理。

详见《线程池全面解析》

四、线程间通信

4.1、Handler

线程间通信,主要是通过handler实现,通过Handler+Looper+MessageQueue来实现多线间异步通信。

详见《Handler使用方法详解(含实例)》

《Handler原理解析(图文详解)》

《Handler源码分析》

五、线程同步

5.1、Synchronized

多线程提高系统资源效率的同时,带来了线程安全性问题,主要通过加锁实现线程安全。

详见《Synchronized简单介绍(原理、使用、对比分析)》

《实现线程同步的所有方法分析》

《 java产生死锁的原因以及如何处理死锁》

六、线程局部变量

6.1、ThreadLocal

ThreadLocal是线程本地变量或线程局部变量,为每个线程提供一个特有的空间,保存线程特有的资源,实现线程隔离,防止数据共享。

详见《 ThreadLocal解析》

七、总结

这是一份全面详细的Android多线程学习总结_第2张图片

前前后后用了两个月的时间,终于把Android多线程相关的知识总结了一遍,说一些个人的感受:

1、通过总结真的学到了很多东西,因为是总结,所以知识相对比较全面一些,起到了查缺补漏的作用,同时对之前经常用到的知识,加深了理解。

2、很多知识点自己在代码中也经常使用,但是真的整理起来,确实不容易,耗费了大量的时间和精力,但是很值得 。

3、这段时间工作也不忙,有时间坚持长久的做一件事,有时间就看看相关的书籍,查查相关的资料,在查看别人博客的同时发现了很多牛人,向他们学习。

4、Android多线程专题就写完了,继续下一个专题,坚持下去,积跬步,至千里!

你可能感兴趣的:(多线程)