JVM執行緒引擎

2021-08-17 02:55:44 字數 338 閱讀 5874

相當於乙個物件,該物件中具有執行**,同時也有要處理的資料,資料報含thread工作時候要訪問的資料,同時也包含現程的stack,在stack中包含了拷貝的全域性資料;

執行緒=**+資料

為了讓每個執行緒正常工作就提出了程式計數器(program counter register),每個執行緒都有自己的程式計數器,這樣當執行緒執行切換的時候就可以在上次執行的基礎上繼續執行,僅僅從一條執行緒執行的角度而言,**是一條一條的往下執行的,這個時候就是program counter register,jvm就是通過讀取program counter register的值來決定該執行緒下一條需要執行的位元組碼指令,進而進行選擇語句、迴圈、異常處理等。

JVM執行緒安全與鎖優化

1.不可變 不可變的物件一定是執行緒安全的。如string類。2.絕對執行緒安全 3.相對執行緒安全 4.執行緒相容 5.執行緒對立 1.互斥同步 阻塞式同步 1 同步指的是 多個執行緒併發訪問共享資料時,保證共享資料在同一時刻只能被乙個執行緒使用。2 互斥指的是 同步的手段。如 臨界區 互斥量和訊...

JVM併發程式設計專題 多執行緒管理(執行緒池)

核心執行緒 執行緒在初始化期間建立出來,這樣使用完了扔給下乙個可以重用 開銷少,但會占用記憶體 臨時執行緒 執行緒用完了就扔掉,每次請求都會新建乙個執行緒 開銷大,但是節約記憶體 執行緒池分類 週期 臨時 定長 執行緒池核心 佇列 wokder裝飾器 物件池思想 池屬性裝飾器 引用 清洗 執行緒池應...

jvm記憶體分割槽及各區執行緒問題

1.堆 heap 主要存放物件的例項也包括陣列,是垃圾管理的主要作用區,是執行緒共享的 2.棧 stack 虛擬機器棧 描述的是 j a 方法執行的記憶體模型,每個方法在執行的同時會建立乙個 stack frame 方法執行時的基礎資料結構 用於儲存區域性變數表 操 作數棧 動態連線 方法出口等資訊...