进程与线程与协程
...大约 1 分钟
进程与线程与协程
进程与线程与协程
进程是程序中资源分配的最小单位,线程是运行调度的最小单位,一个进程可以包含多个线程,并且这些线程可以共享所在进程中的资源。协程是用户态的轻量级线程,它不受操作系统的调度,是由程序员或者库来控制,协程可以在一个线程中切换执行多个任务,从而实现异步编程的效果。另外,协程的创建和销毁都是在用户态中操作的,并且协程的调度是不需要进行上下文之间的切换,所以协程的开销非常小。
三者区别
开销大小:进程开销最大,线程次之,协程最小
资源分配上:进程是资源分配的单位,线程和协程是资源调度的单位,线程共享所在进程中的资源,协程共享所在线程中的资源
地址空间:进程有独立的地址空间,线程共享进程的地址空间,协程也共享线程所在的地址空间
调度方式:进程和线程由操作系统调度,协程是由用户或库调度