进程和线程上下文切换的区别

提一嘴上下文切换 ,上下文切换是一个过程 ,从任务保存到再加载的过程就是一次上下文切换

线程和进程上下文切换的区别

进程切换需要分两步

1.切换页目录以使用新的地址空间
2.切换内核栈和硬件上下文

对于linux来说,线程和进程的最大区别就在于地址空间。
对于线程切换,第一步是不需要做的,第二步是进程和线程切换都要做的,所以进程对此比线程切换代价大。

调度

进程调度,切换进程上下文,包括分配的内存,数据段,堆栈段等
线程调度,切换线程上下文,主要切换堆栈,以及各寄存器(同个进程里的线程 堆栈不同)

协程,(轻量级线程) 每个协程都自带一个栈,协程就是一个函数和这个函数运行时数据的栈

原文地址:https://www.cnblogs.com/nineberg/p/12500227.html