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开发艺术探索》

更多相关文章

  1. Android简明开发教程十九:线程 Bezier曲线
  2. 在windows下使用cmd命令通过adb shell自动调用android模拟或真机
  3. Android--创建和使用数据库详细指南
  4. ESC/POS指令集在Android设备上使用实例(通过socket)
  5. Android(安卓)adb的使用略解
  6. Android(安卓)SDK,ADT,以及API的理解
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. android gps开发必备资料(含测试demo下载
  2. 重写对话框
  3. Android(安卓)初识Intent
  4. Android(安卓)控制闪光灯
  5. android添加桌面快捷方式
  6. Android(安卓)改变标题栏的背景色
  7. android 升级 4.1后出现java.lang.NoSuch
  8. android系统中自带的图标大全
  9. Android(安卓)Studio 无法打开虚拟机
  10. android > WebView > 布局