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

一、介绍

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

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

二、多线程基础知识

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多线程相关的知识总结了一遍,说一些个人的感受:

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

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

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

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

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值