我想明白这是什么表态意味着:“每个JVM线程都有自己的程序计数器”是什么意思?
每个Java虚拟机线程都有自己的PC(程序计数器) 寄存器。在任何时候,每个Java虚拟机线程正在执行单个方法的代码 ,即该线程的当前方法(§2.6)。
https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.5.1
我假设JVM线程就像任何其他的线程 - 每个线程调度运行时间(由说Linux内核),它的“程序计数器”被加载从它的task_struct data structure所以从CPU的角度来看,只有一个程序计数器 - 每当操作系统切换线程时,它都会被操作系统更新。
这是正确的吗?我很困惑,因为整个页面似乎一直强调每个JVM都得到它自己的PC /堆栈/堆等,但我认为这是任何进程的一个给定 - 是否JVM在其他进程中独一无二?
那么,你错误地引用了标题中的摘录:“每个Java虚拟机**线程**都有自己的pc”。然后“JVM **线程**像任何其他线程一样工作”。 –
你是对的 - 这是我混乱的一部分。 – Charlie