1.基本概念
进程和线程
进程:是系统资源分配的基本单位,实现了操作系统的并发。
线程:是CPU调度的基本单位,实现了进程内的并发执行。
并发是把任务在不同的时间点交给处理器进行处理;在同一时间点,任务并不会同时运行。
并行是把每一个任务分配给每一个处理器独立完成;在同一时间点,任务一定是同时运行。
进程拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程由操作系统调度;
线程拥有自己独立的栈,共享堆(也可以有自己的私有域),不共享栈,线程亦由操作系统调度。
协程
协程:协程(Coroutine,又称微线程)是一种比线程更加轻量级的存在(C++ 20之后引入),协程不是被操作系统内核所管理,而完全是由程序所控制。
协程不是进程,也不是线程,它就是一个函数,一个特殊的函数——可以在某个地方挂起,并且可以重新在挂起处继续运行。
协程可以让我们使用同步方式写异步代码。