线程上下文切换(Thread Context Switch)
Posted 杀手不太冷!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程上下文切换(Thread Context Switch)相关的知识,希望对你有一定的参考价值。
线程上下文切换(Thread Context Switch)
因为以下一些原因导致cpu不再执行当前的线程,转而执行另一个线程的代码。
发生的原因,有如下几个:
1.线程的cpu时间片用完
2.垃圾回收
3.有更高优先级的线程需要运行,
4.线程自己调用了sleep,yield,wait,join,park,sychronized,lock等方法
当Context Switch发生时,需要由操作系统保存当前线程的状态,并恢复另一个线程的状态,Java中对应的概念就是程序计数器(Program Counter Register),它的作用是记住下一条jvm指令的地址,是线程私有的。
状态包括程序计数器,虚拟机栈中每个栈帧的信息,如局部变量,操作数栈,返回地址等
Context Switch频繁发生会影响性能
以上是关于线程上下文切换(Thread Context Switch)的主要内容,如果未能解决你的问题,请参考以下文章