Java虚拟机 - 程序计数器

Java内存区域:程序计数器

当线程启动的时候,就会创建一个程序计数器,用来作为当前线程所执行的字节码的行号指示器。

线程私有:任一时刻,一个处理器(多核处理器时,一个内核)只会执行一个线程,为了方便线程切换后回到正确的执行位置,所以线程私有。

它只有一个字长,可以持有一个本地指令,也可以持有一个returnAddress。

当线程执行一个方法的时候,它存储的是将被执行指令的"地址"

  1. 正在执行的虚拟机字节码指令的地址;

  2. 在方法字节码中,相对于方法起始位置的偏移量。

当线程执行一个 native 方法的时候,它存储的是"undefined":指向的是字节码指令,本地方法没有字节码。

它是虚拟机规范中唯一一个没有规定任何OutOfMemoryError的区域。

问题:

当程序计数器存储"undefined"的时候,如何回到"正确的执行位置"

你可能感兴趣的:(Java虚拟机,虚拟机,程序计数器)