当前位置:网站首页>Program counter of JVM runtime data area
Program counter of JVM runtime data area
2022-07-06 17:14:00 【Smart popcorn】
1. Introduce
The program counter is also called PC register , Its full name is Program Counter Register, It's a literal translation , It can be seen as an abstract simulation of real physical registers .

Its main function is to store the address of the next instruction , You can see the following , from 5 Get the corresponding operation instructions at the position of , Put in PC Access in register , Then the execution engine will read , Translate operation instructions into machine instructions , Perform a series of operations such as addition, subtraction, multiplication and division .

Take a look back. , As shown in the figure below .

2. characteristic
It also has the following features .
- The memory occupied is very small , Almost negligible , Very fast .
- Thread private , Each thread has a piece , There will be no thread safety issues
- One thread corresponds to one method , The program counter stores the instruction address of the method running in the thread , But if the local method is executed , The instruction address is underfine, Can't record , Because he only records Java Method
- Branch loop Jump depends on this counter
- stay JVM The only one in the specification will not OOM Region
3.CPU Time slice
Let's talk about CPU The concept of time slice , This is a CPU The time allocated to the execution of each program .
For a single core CPU, There is no concept of parallel , But because CPU Time slice switching , It will give us an illusion of concurrency , That is, multiple programs are running at the same time , Because each program may only run 10ns Time for , Switch back and forth , But in essence, it is a single thread operation .
But for multicore CPU, Multiple programs are assigned to different cores for processing , Different threads perform different jobs at the same time , But for every core , There will be concurrent operations , That is, each thread alternates ,
4. Two questions
PC What's the use of registers storing bytecode instruction addresses ?
In the case of multithreading , Executing a method will involve multiple threads , So record the instruction address , Otherwise, the switched thread will execute from the beginning , That must be wrong .
take 4*100 For the meter relay , The relay man is 100 rice ,200 rice ,300 Wait at a place of meters , Instead of starting from scratch , The position of the relay is equivalent to the instruction address .
PC Why should registers be thread private ?

hypothesis PC Registers are shared by threads , So what problems will it bring , Suppose three threads execute three different methods .
The first thread 1 Execute to order 5 了 , Start switching , Threads 2 Execute the final execution to the instruction 7, Will command 5 Cover the position of , Wait for the thread 123 It's all done , Threads 1 Start again , Is from the instruction 17 It's going to work , But it only executed the instruction originally 5, But there's no record , It will definitely cause confusion in the procedure , So the program counter has to be thread private .
Share daily
If you've ever hated your parents for being incompetent , No vision , It means that you have gone beyond the limitations of your parents , And this is the situation they do everything they want to see .
边栏推荐
- Prototype chain inheritance
- Wu Jun trilogy insight (IV) everyone's wisdom
- Take you hand-in-hand to do intensive learning experiments -- knock the level in detail
- Logical operation instruction
- 登陆验证koa-passport中间件的简单使用
- 案例:检查空字段【注解+反射+自定义异常】
- [graduation project] QT from introduction to practice: realize imitation of QQ communication, which is also the last blog post in school.
- 8086 CPU 内部结构
- 8086 内存
- 唯有学C不负众望 TOP5 S1E8|S1E9:字符和字符串&&算术运算符
猜你喜欢
随机推荐
控制转移指令
Interview collection library
Go language uses the thrift protocol to realize the client and service end reports not enough arguments in call to oprot Writemessagebegin error resolution
Notes on how the network is connected
8086 CPU 内部结构
1. JVM入门介绍
Flink 解析(三):内存管理
Fdog series (VI): use QT to communicate between the client and the client through the server (less information, recommended Collection)
DS18B20数字温度计系统设计
Mongodb learning notes
唯有学C不负众望 TOP4 S1E6:数据类型
Shell_ 02_ Text three swordsman
Fdog series (I): think about it. It's better to write a chat software. Then start with the imitation QQ registration page.
SQL tuning notes
暑假刷题嗷嗷嗷嗷
Introduction to spring trick of ByteDance: senior students, senior students, senior students, and the author "brocade bag"
README. txt
唯有学C不负众望 TOP3 Demo练习
MySQL string function
yum install xxx报错








