线程切换的流程:
1、保存CPU上下文,也就是各类寄存器的信息
2、触发软中断,从用户态转化到内核态,恢复内核栈的寄存器信息,内核栈会执行对应的线程切换函数,从就绪线程中选出一个线程来执行,并恢复线程对应的CPU上下文。
这里面存在了2次的CPU上下文切换
3、对应的线程开始执行
这里面有两个比较耗时间的点:CPU的上下文切换、 进程的调度选择!
线程切换的流程:
1、保存CPU上下文,也就是各类寄存器的信息
2、触发软中断,从用户态转化到内核态,恢复内核栈的寄存器信息,内核栈会执行对应的线程切换函数,从就绪线程中选出一个线程来执行,并恢复线程对应的CPU上下文。
这里面存在了2次的CPU上下文切换
3、对应的线程开始执行
这里面有两个比较耗时间的点:CPU的上下文切换、 进程的调度选择!