进程:
保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己独立的地址空间,有自己的堆,上级挂靠单位是操作系统。操作系统会以进程为单位,分配系统资源(CPU时间片、内存等资源),进程是资源分配的最小单位。
线程:
线程又叫做轻量级进程,是操作系统调度,是CPU调度的最小单位。
线程从属于进程,是程序的实际执行者。一个进程可以有多个线程,最少有一个线程,但一个线程只能有一个进程。
协程:
协程,又称微线程,纤程;是一种比线程更加轻量级的存在
线程的切换会保存到CPU的栈里,协程拥有自己的寄存器上下文和栈
协程最主要的作用是在单线程的条件下实现并发的效果,但实际上还是串行的(像yield一样)
一个线程可以拥有多个协程,协程不是被操作系统内核所管理,而完全是由程序所控制。