Android 进程、线程和协程的区别
Android 进程、线程和协程的区别
进程
- 进程是系统资源分配、调度和管理的基本单元(最小单元),操作系统结构的基础
- 进程间相对独立,有自己独立的地址空间、独立的内存单元
- 进程调度由操作系统控制
- 计算机中一个任务就是一个进程,指一个程序或者应用
- 程序的实体,一个程序至少包含一个进程
- 进程是线程的容器,一个进程至少包含一个线程
- 同一时刻执行的进程数不会超过 CPU 核心数
- 为了切换进程,进程需要支持挂起与恢复
线程
- 线程是系统调度执行的基本单元(最小单元),是程序执行的最小单元
- 线程调度由操作系统控制
- 进程中子任务,可以看成轻量级的进程,也称为微进程
协程
- 协程是运行在线程上的一个任务单元,是一种思想
- 协程调度是由开发者来指定并由编译器来实现的
- 线程中子任务,可以看成轻量级的线程,又称微线程
- Kotlin 中的协程在 Android 上就相当于一个 Java 线程池的封装,本质是一套线程切换方案、一个线程框架、一个组件帮开发者能够更好的完成线程切换等操作
- 协程可以通过同步的代码风格去编写异步操作代码,从而简化异步执行的代码,解决了回调地狱,提高代码可读性,让开发者更方便地处理异步业务