进程、线程与协程在资源隔离和并发执行上有什么本质区别
简答题中等769 次浏览
参考答案与解析
# 核心结论
进程、线程和协程的本质差异在于资源归属、隔离边界、调度主体以及暂停和恢复方式,而不能只概括为重量不同。进程通常是操作系统分配资源和实施故障隔离的基本单位,拥有独立的虚拟地址空间及一组系统资源;同一进程内的线程共享代码段、堆、打开文件等资源,但各自保存寄存器、程序计数器和栈;协程则通常由语言运行时或应用框架管理,是能够暂停并在之后恢复的用户态执行单元,多个协程一般承载于一个或少量内核线程之上。
# 底层机制
进程切换需要保存执行上下文,并可能切换页表和地址空间。现代处理器可借助地址空间标识及转换缓存降低代价,但不同进程的工作集仍会影响缓存局部性。线程共享地址空间,切换时通常不必更换整套地址映射,不过内核调度
