程序计数器
程序计数器
PC寄存器特点
- PC寄存器用来存储指令相关的现场信息,它区别于广义上的物理寄存器,可以看作是物理PC寄存器的一种抽象模拟。
- 在jvm内存模型中,它运行速度最快;线程私有,并且生命周期与线程的生命周期保持一致。
- 任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的Java方法的JVM指令地址。
- 不会出现 OOM 异常。
- PC寄存器用来存储指向下一条指令的地址,执行引擎会从寄存器中取到指令并执行。
面试题
- PC寄存器存储字节码指令地址的作用是因为线程是顺序执行流,CPU切换线程,切换回来时需要接着执行、字节码解释器就需要通过改变PC寄存器的值来明确下一条应该执行什么样的字节码指令。
- PC寄存器被设定为私有的原因是:CPU切换线程会导致线程不断中断或者恢复,需要准确记录各个线程间正在执行的字节码指令。
并行和并发
- 并行:同一时刻进行两个或多个任务。
- 并发:一段时间(同一时间间隔)内,进行两个或多个任务。
- 同一时刻和同一时间间隔的区别。