pc寄存器的功能?
PC寄存器是用來存儲(chǔ)指向下一條指令的地址,也即將將要執(zhí)行的指令代碼。由執(zhí)行引擎讀取下一條指令。
1.它是一塊很小的內(nèi)存空間,幾乎可以忽略不計(jì)。也是運(yùn)行速度最快的存儲(chǔ)區(qū)域
2.在JVM規(guī)范中,每個(gè)線程都有它自己的程序計(jì)數(shù)器,是線程私有的,生命周期與線程的生命周期保持一致
3.任何時(shí)間一個(gè)線程都只有一個(gè)方法在執(zhí)行,也就是所謂的當(dāng)前方法。程序計(jì)數(shù)器會(huì)存儲(chǔ)當(dāng)前線程正在執(zhí)行的java方法的JVM指令地址;或者,如果實(shí)在執(zhí)行native方法,則是未指定值(undefined),因?yàn)槌绦蛴?jì)數(shù)器不負(fù)責(zé)本地方法棧。
4.它是程序控制流的指示器,分支、循環(huán)、跳轉(zhuǎn)、異常處理、線程恢復(fù)等基礎(chǔ)功能都需要依賴這個(gè)計(jì)數(shù)器來完成
5.字節(jié)碼解釋器工作時(shí)就是通過改變這個(gè)計(jì)數(shù)器的值來選取下一條需要執(zhí)行的字節(jié)碼指令
6.它是唯一一個(gè)在java虛擬機(jī)規(guī)范中沒有規(guī)定任何OOM(Out Of Memery)情況的區(qū)域,而且沒有垃圾回收