线程,进程,协程的概念与区别

进程:作为资源拥有的基本单位,最小的资源分配单位,有独立的地址空间,有自己的堆

线程:作为调度的最小单位,轻量级线程

协程:协程是一种用户态轻量级线程,调度由程序控制,进程和线程都有系统内核管理。拥有自己的寄存器上下文和栈。

线程和进程的区别:

调度:进程资源拥有的基本单位,线程是调度和分配的基本单位。

并发性:进程和线程都可以并发

拥有资源:进程是拥有资源的一个独立单位,线程不拥有资源,访问,共享,进程的资源

资源开销:因为进程创建或者撤销要分配和回收资源,所以系统开销很大。

进程有独立的地址空间,所以一个进程奔溃后不会对其他进程造成影响,线程没有独立的地址空间,所以一个进程崩溃后所有的线程都会被死掉。

 

协程与线程比较:

一个线程可以有多个协程,线程是同步机制,协程是异步

协程能保存上一次调用的状态,因为有自己的寄存器上下文和栈。

消耗资源比线程更少,效率更高,因为由程序控制,不被系统内核管理

不需要多线程锁:因为只有一个线程,也没有写变量冲突。

协程执行,是线程里面的子程序在切换,而且协程的子程序执行是可以中断的。所以没有资源开销,所以拥有更高的执行效率

posted @ 2020-10-29 13:16  YaochenZhang  阅读(251)  评论(0)    收藏  举报