Android多线程:理解和简单使用总结

原文链接:https://www.jianshu.com/p/56163a3beb4a

Android多线程:理解和简单使用总结

Android多线程目录.png

一、Android中的线程

1.1 定义

线程,可以看作是进程的实体,CPU调度资源的基本单位。本质上是一串命令(也就是程序代码),执行线程可以理解为把命令交给操作系统去执行。
Java中的线程:Java中默认一个进程只有一个线程,称之为主线程。其它线程称之为子线程也叫工作线程。
Android中的线程:Android沿用了Java线程模型,Android中主线程也叫UI线程。Android3.0以后,系统要求网络访问必须在子线程中进行。

1.2 特点

线程基本不拥有系统资源,只拥有在运行时必不可少的系统资源(程序计数器,一组寄存器和栈)。可以并发执行。

二、Android中线程分类及作用

2.1 按用途分类:

  • 主线程:又叫UI线程,由ActivityThread管理

作用:运行四大组件,和用户交互以及更新UI。

  • 子线程

作用:处理耗时操作,比如网络请求,复杂计算等。

2.2 按形态分类:

  • Thread

说明:基本的线程,可以做一些简单的操作,经常配合Handler使用。
相关面试题:线程的几种状态、线程安全和同步问题、如何解决线程安全问题,下文都有概述。
Android 多线程:Thread理解和使用总结

  • AsyncTask

说明:轻量级的异步操作类,方便更新UI。
相关面试题:AsyncTask的原理、AsyncTask的优点和缺点。
Android 多线程:AsyncTask理解和使用总结

  • HandlerThread

说明:一个使用了Looper、Handler的线程。
主要作用:方便地实现每隔几秒更新数据的功能,如价格,图片等。比Timer使用方便并且内存占用低。
Android 多线程:HandlerThread理解和使用总结

  • IntentService

说明:封装了HandlerThread和一个Handler,是HandlerThread的具体使用,由于属于Service,若以比单纯的线程优先级更高。
Android 多线程:IntentService理解和使用总结
Android进程优先级

  • 线程池

相关面试题:线程池的使用、线程池的种类以及区别。
Android 多线程:线程池理解和使用总结

所有测试Demo,Git地址

参考资料:

Android 中三种启用线程的方法
Android中AsyncTask使用详解
Android线程管理之Thread使用总结
Android HandlerThread 完全解析
IntentService 示例与详解
《Android开发艺术探索》

发布了49 篇原创文章 · 获赞 2 · 访问量 8591

猜你喜欢

转载自blog.csdn.net/yangjunjin/article/details/105029339