自学内容网 自学内容网

C++面试:进程、线程、协程

学习自视频:校招吊打大厂面试官!基础知识信手拈来,算法秒过!_哔哩哔哩_bilibili


进程是操作系统分配资源的基本单位,进程的三大状态:堵塞态、就绪态、运行态

就绪态是一种可以被调度的状态、运行态是正在被CPU执行

线程是操作系统调度的基本单位

从内存角度:线程没有自己独立的虚拟地址空间,但是每个进程都有独立的虚拟地址空间

从通信角度:线程的通信比较方便,从堆上面直接通信,而进程间通信比较复杂(IPC)

从安全性角度:进程中的某个线程挂掉了,则整个进程全部挂掉;但是如果某个进程挂掉了,其他进程不受影响,因为虚拟地址空间是独立的

从相互切换角度: 进程间的相互切换比较重,需要切换页表,本身是一个开销,而线程相互切换只需要切换硬件上下文

协程的本质是运行在用户态的一个线程,在堆区模拟出来一块空间,分配一个协程号,然后分配到寄存器,则成功创建一个协程。切换时完全在用户态进行操作,对操作系统来说是透明的,所有的调度由用户自己完成


原文地址:https://blog.csdn.net/qq_51365682/article/details/142769795

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!