摘要:
package com.hugh.java17.v19; import java.time.Duration; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import jav 閱讀全文
posted @ 2025-10-26 21:52
十三山入秋
閱讀(7)
評論(0)
推薦(0)
摘要:
關于 Integer 作為鎖對象的風險總結 核心結論 Integer(如 Integer lock = 1;)不適合作為 synchronized 的鎖對象,因緩存復用和不可變性導致同步邏輯失效。 關鍵風險點 緩存復用導致鎖沖突 Java 對 [-128, 127] 范圍內的 Integer 實現緩 閱讀全文
posted @ 2025-10-26 17:18
十三山入秋
閱讀(7)
評論(0)
推薦(0)
摘要:
可重入鎖的核心是“同一線程可重復獲取同一把鎖”,Java 中 synchronized 和 ReentrantLock 都是可重入鎖,寫法各有特點。下面分別兩種鎖的可重入用法示例,清晰展示“重復獲取鎖”的場景: 一、synchronized 可重入寫法(隱式可重入,JVM 自動管理) synchro 閱讀全文
posted @ 2025-10-26 17:10
十三山入秋
閱讀(8)
評論(1)
推薦(0)
摘要:
ReentrantLock 是 JDK 提供的手動鎖(位于 java.util.concurrent.locks 包),與 synchronized 同為可重入鎖,但用法和特性有顯著區別。下面從 用法、核心區別、適用場景 三個維度對比,講清楚它們的“講究”: synchronized 是手動擋,Re 閱讀全文
posted @ 2025-10-26 16:07
十三山入秋
閱讀(17)
評論(1)
推薦(0)
摘要:
確實,實際業務中庫存通常存在數據庫,但多線程操作時仍可能有并發問題(比如數據庫事務未控制好導致超賣)。下面結合真實業務場景(含數據庫操作),用更貼近實際的代碼示例說明 synchronized 和 volatile 的用法,同時加入數據庫層面的處理邏輯。 一、同步代碼塊:解決“數據庫庫存并發扣減”問 閱讀全文
posted @ 2025-10-26 13:03
十三山入秋
閱讀(6)
評論(3)
推薦(0)

浙公網安備 33010602011771號