扫码关注微信公众号

回复“面试手册”,获取本站PDF版

回复“简历”,获取高质量简历模板

回复“加群”,加入程序员交流群

回复“电子书”,获取程序员类电子书

当前位置: 计算机基础 > 操作系统 > 5.进程、线程和协程的区别和联系

这三者的区别是一个比一个”小“的,一个进程可以包含多个线程,一个线程也可以包含多个协程。

进程:进程是资源调度的基本单位,运行一个可执行程序会创建一个或多个进程

线程:线程是程序执行的基本单位,是轻量级的进程

协程:是一种比线程更加轻量级的存在,协程是一个特殊的函数,这个函数可以在某个地方挂起,并且可以重新在挂起处继续运行

值得注意的是,多进程(多线程)在多核CPU上是可以并行的,但一个线程内的多个协程的运行是串行的,下面看下具体的区别

进程线程协程
切换者操纵系统操纵系统用户
切换时机操作系统的切换策略决定操作系统的切换策略决定用户决定
切换内容页全局目录、内核栈、硬件上下文内核栈、硬件上下文硬件上下文
切换内容的保存内核栈内核栈用户栈/堆
切换过程用户态-内核态-用户态用户态-内核态-用户态用户态
并发问题不同进程之间切换实现并发,各自占有CPU实现并行一个进程内部的多个线程并发执行串行执行
系统开销很大较小很小
进程、线程、协程区别

点击面试手册,获取本站面试手册PDF完整版