线程上下文切换

线程上下文切换就是一个工作的线程被另外一个线程暂停,另外一个线程占用了处理器开始执行任务的过程。系统和 Java 程序自发性以及非自发性的调用操作,就会导致上下文切换,从而带来系统开销。

CPU上下文:CPU在运行的过程中各种寄存器如:栈寄存器(Stack Pointer 、指令地址寄存器(Program Counter)、状态寄存器(Status Register)【保存进位、当前CPU处于用户态还是内核态】的当前保存的所有信息就是我们通常所说的上下文(context)只要你能拿到一个程序运行时的上下文并保存起来,那么你可以随时暂停该程序的运行,也可以随时利用该信息恢复该程序的运行。为什么要保存和恢复上下文信息呢?原因就在于CPU的个数是有限的,这就意味一个CPU可能会执行多个进程,即这些进程要共享该CPU资源,更具体的是CPU的计算资源和这里所说的各种寄存器。这是实现函数调用、系统调用、进程切换、线程切换以及中断处理的基本机制。

https://baijiahao.baidu.com/s?id=1685394208506036098&wfr=spider&for=pc

https://blog.csdn.net/alex_xfboy/article/details/90722654

https://mp.weixin.qq.com/s/T67xrYkTpcALbQvr6Aaaiw

原文地址:https://www.cnblogs.com/zhangww/p/15247669.html