您的位置:首頁>正文

JVM運行的資料分區之程式計數器

程式計數器

嚴格來說是一個資料結構, 用於保存當前正在執行的程式的記憶體位址, 由於Java是支持多執行緒執行的, 所以程式執行的軌跡不可能一直都是線性執行。

當有多個執行緒交叉執行時, 被中斷的執行緒的程式當前執行到哪條記憶體位址必然要保存下來, 以便用於被中斷的執行緒恢復執行時再按照被中斷時的指令位址繼續執行下去。

思考:

提問:同樣的類, 我開啟了兩個執行緒, 這兩個執行緒也是各自的程式計數器嗎?還是共用?

結論:我認為還是每個執行緒有自己的程式計數器, 執行緒之間也是需要占cpu資源, 不應該共用記憶體空間。

原因:為了執行緒切換後能恢復到正確的執行位置, 每個執行緒都需要有一個獨立的程式計數器, 各個執行緒之間計數器互不影響, 獨立存儲, 我們稱這類記憶體區域為“執行緒私有”的記憶體,這在某種程度上有點類似於“ThreadLocal”,

是執行緒安全的。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示