🎯 什麼情境該想到我

當你「有一組彼此相關的物件(聚合),想用一把鎖一次鎖住全部,避免只鎖到一部分」的時候。

⚙️ 怎麼用(步驟 / 公式)

意圖:用單一把鎖涵蓋一整組相關物件,讓它們作為一個單位一起被鎖定與釋放。

做法要點:

  • 為一組相關物件(如聚合)指定一個共用的鎖點。
  • 常見做法:共用版本(shared version)——整組共用一個版本號;或以根物件(root)作為鎖的持有點。
  • 鎖住根,即等於鎖住整組;一次鎖全部,不會有部分鎖漏。
  • 常與樂觀/悲觀離線鎖搭配,決定鎖定的顆粒度。

🧪 我實際套用的紀錄

  • (待填)

⚠️ 注意 / 什麼時候不適用

  • 顆粒度太粗會降低並發(動一個小物件也鎖住整組)。
  • 需要清楚定義「哪些物件屬於同一組」(聚合邊界)。
  • 物件間關聯鬆散、可獨立變動時,粗粒度鎖反而綁太多。

🔗 相關工具