java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java程序计数器

程序计数器是什么?Java多线程切换如何记录执行位置

作者:青衫码上行

程序计数器是Java虚拟机中一块较小的内存区域,用来记录当前线程执行字节码的行号,它在线程切换时确保能恢复到正确位置,是字节码解释器实现流程控制的关键,本文详细解释了程序计数器的作用、生命周期,以及为什么它是JVM中唯一不会内存溢出的区域

程序计数器

为什么需要程序计数器

Java 支持多线程并发运行,CPU 调度器会为每个线程分配时间片。

如果线程

1、在时间片内没有执行完,就需要保存当前执行状态,切换到线程

2、等下次切换回来时,要能接着上次的位置继续执行。

程序计数器的具体作用

程序计数器是一块较小的内存空间,可以看作当前线程所执行字节码的行号指示器。

字节码解释器通过改变计数器的值来选取下一条需要执行的字节码指令。分支、循环、跳转、异常处理、线程恢复等功能,都依赖这个计数器完成。

主要两个作用

程序计数器的生命周期与线程完全同步:

补充

注意

程序计数器是 JVM 规范中唯一一个不会发生 OutOfMemoryError 的内存区域。

因为它只存一个地址,占用内存极小且固定,不会出现内存溢出。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文