1、协程是什么
在了解协程之前,需要对比一下进程、线程和协程的区别:
1.1 进程
进程可以理解为资源分配的基本单位,操作系统以一个进程为基本单位,分配系统资源,包括内存资源和CPU的时间片资源。进程的切换者是操作系统,切换时机是根据操作系统自己的切换策略,用户是无感知的。进程的切换内容包括页全局目录、内核栈、硬件上下文,切换内容保存在内存中。进程切换过程是由“用户态到内核态到用户态”的方式,切换效率低。一个进程有自己独立的地址空间,包括:
- 数据段
- 代码段
- 堆
- 栈
- 文件
一个进程里面可以包含多个线程。