原创 Java 中的鎖分類以及鎖的原理

鎖分類與原理鎖的分類鎖的分類及基本概念Java對象在內存中的佈局:鎖的升級過程:鎖的本質:synchronized 與Lock 的區別:互斥鎖的原理:1.讀寫鎖2.讀寫鎖的原理3.Java 中讀寫鎖的最好實現:ReentrantR

原创 線程安全之可見性(Volatile)和原子性(Atomic)

線程安全之可見性(Volatile)和原子性線程之可見性可見性原理分析線程間操作的定義同步的規則定義Happens-before 先行發生原則Final 修飾符線程可見性總結線程安全之原子性原子操作存在的問題及分析原因示例代碼:存

原创 JAVA 線程通信和線程封閉

目錄線程通信:以去Bank 取錢爲例wait/notifypark/unpark僞喚醒線程封閉ThreadLocal局部變量/ 棧封閉 線程通信:以去Bank 取錢爲例 wait/notify 只能由同一個對象鎖的持有者線程調用,

原创 JVM執行原理你是否已經get

JVM 運行時的數據區 .java 源代碼通過編譯成.class 字節碼文件,將字節碼文件運行在JVM中。接下來一起探討JVM運行時都有哪些數據區域。先上一張結構圖: 線程共享 線程共享:每個線程都能訪問這塊內存數據,隨着虛擬機