-
程序计数器
2020-12-30 22:31:24 -
什么是程序计数器,CPU中有几个程序计数器,线程为什么有私有的程序计数器
2020-06-20 17:50:011、什么是程序计数器 CPU再执行程序时,需要有一个地方存放下一条要被取走指令的位置,是一个寄存器。 2.CPU中有几个程序计数器 只有一个 3.线程为什么是私有的程序计数器 线程中的程序计数器可以理解为一段内存,...1、什么是程序计数器
CPU再执行程序时,需要有一个地方存放下一条要被取走指令的位置,是一个寄存器。
2.CPU中有几个程序计数器
只有一个
3.线程为什么是私有的程序计数器
线程中的程序计数器可以理解为一段内存,用来保存当前线程执行到的位置,因为系统采用时间片轮转的方法,所以一个线程不可能一直占用CPU,只能执行规定时间,进行线程切换,这里就需要有一个私有的线程计数器,也就是本地计数器,来保存当前线程的执行到的位置,等到下一次再从这个位置继续执行。 -
JVM程序计数器
2020-09-06 18:55:54文章目录什么是程序计数器存在的意义关于native方法参考 什么是程序计数器 程序计数器可以看作是JVM对CPU程序计数器的一种模拟;其是一块较小的内存空间,用来存储当前线程的所执行的字节码的行号。 注意: 程序...什么是程序计数器
程序计数器可以看作是JVM对CPU程序计数器的一种模拟;其是一块较小的内存空间,用来存储当前线程的所执行的字节码的行号。
注意:
- 程序计数器是线程私有的,每个线程都有一个自己的程序计数器。
- 在这块内存空间中不存在任何
OutOfMemoryError
情况。
存在的意义
虽然Java字节码在未经过即时编译器编译前,是通过字节码解释器解释执行。一行一行的读取、解释、执行,即使存在分支、跳等操作,只要是按照流程执行的,其实不需要程序计数器也可以正常执行。
因为Java的多线程是通过线程轮流切换、分配处理器时间片的方式来实现的,所以在任何一个时刻,一个CPU的内核只会执行一个线程中的命令,所以一旦当前线程的时间片结束然后被挂起,当又轮到这个被挂起的线程执行的时候,如何去恢复被挂起前的状态?这个就是依靠程序计数器,保存当前执行的字节码的位置。
关于native方法
程序计数器保存的是当前执行的Java字节码指定的地址。
如果当前执行的是native方法,因为其并不是Java字节码,所以当执行的是native方法的时候,程序计数器中保持的地址是空的。
参考
- 深入理解Java虚拟机 JVM高级特性与最佳实践
- 01-JVM内存模型:程序计数器
- JVM 程序计数器
收藏数
23,672
精华内容
9,468
-
echarts——配置总结及个别案例演示
-
用jquery实现ajax检测用户名.zip
-
Python入门
-
2020-10-15-web新手区.md
-
centos7.2安装php7.2
-
ppt与pptx的区别是什么?
-
SubstancePainter插件开发-基础入门
-
量化高频交易系统tick数据采集
-
WPF上位机数据采集与监控系统零基础实战
-
关于Qtdesigner中图像处理的一些踩过的坑:进程已结束,退出代码 -1073740791 (0xC0000409)
-
java微服务常用技术整合
-
可直接运行的Java web jar 镜像
-
PHP支付宝微信支付配置教程
-
转行做IT-第2章 HTML入门及高级应用
-
包装类
-
微信公众号2021之网页授权一学就会java版
-
Java 八大基本数据类型的默认值 及其 相关初始化问题分析
-
Android 其他问题点
-
音频外设术语定义
-
css中如何使颜色透明度