进程:
1.进程是资源调度的最小单位。
2.程序运行的基本单位。
3.堆、栈不共享,资源独立。
4.创建时消耗很高。
线程:
1.进程的实体(单个或多个线程组成进程)。
2.CPU调度的基本单位。
3.堆共享,栈不共享。
4.相同进程内调度效率极高(线程调度),不同进程内调度消耗较高(进程调度)
协程:
1.用户级别轻量级线程
2.允许子程序在特定的地点进行挂起/恢复。
3.虽然协程调度代价很低,但是在频繁切换的情况下要保存大量的CPU上下文环境,因此协程对内存的消耗非常大,驾驭不好十分容易造成内存泄漏。
总结:
进程是系统调度资源的基本单位,一个程序拥有一个或多个进程,线程是进程执行任务的实体,进程之间资源不共享;线程是CPU调度的基本单位,一个进程至少拥有一个线程,相同进程下的线程共享所有资源;协程是一个用户级别的更轻量级的线程,协成的调度单位是开发者保存的CPU的上下文环境,协程的调度由开发者来控制,协成就是一个调度的单线程。