线程,进程,协程的概念与区别
进程:作为资源拥有的基本单位,最小的资源分配单位,有独立的地址空间,有自己的堆
线程:作为调度的最小单位,轻量级线程
协程:协程是一种用户态轻量级线程,调度由程序控制,进程和线程都有系统内核管理。拥有自己的寄存器上下文和栈。
线程和进程的区别:
调度:进程资源拥有的基本单位,线程是调度和分配的基本单位。
并发性:进程和线程都可以并发
拥有资源:进程是拥有资源的一个独立单位,线程不拥有资源,访问,共享,进程的资源
资源开销:因为进程创建或者撤销要分配和回收资源,所以系统开销很大。
进程有独立的地址空间,所以一个进程奔溃后不会对其他进程造成影响,线程没有独立的地址空间,所以一个进程崩溃后所有的线程都会被死掉。
协程与线程比较:
一个线程可以有多个协程,线程是同步机制,协程是异步
协程能保存上一次调用的状态,因为有自己的寄存器上下文和栈。
消耗资源比线程更少,效率更高,因为由程序控制,不被系统内核管理
不需要多线程锁:因为只有一个线程,也没有写变量冲突。
协程执行,是线程里面的子程序在切换,而且协程的子程序执行是可以中断的。所以没有资源开销,所以拥有更高的执行效率
浙公网安备 33010602011771号