[並行控制] Concurrency control 指南 – 樂觀鎖|悲觀鎖

Intro

Concurrency control - 並行控制

並行控制的核心目標是確保 ACID 中的一致性 (Consistency) 與隔離性 (Isolation)。在實作上,我們主要透過『鎖』這項工具來管理多個事務對同一資源的存取順序。

鎖的實現分類上目前可分為兩種:

  • 樂觀鎖(Optimistic Locking)
  • 悲觀鎖(Pessimistic Locking)

Database - 資料庫管理系統

資料庫鎖已經獨立出一篇文章,請參考以下:

[Database][MySQL] 樂觀鎖 & 悲觀鎖指南 – OCC|PCC (FOR SHARE & FOR UPDATE)


OS - 作業系統

IPC (Inter-Process Communication) - 行程間通訊

  • Mutex (互斥鎖):對應 DB 的 FOR UPDATE,同一時間只允許一個 Thread 進入臨界區。
  • Read-Write Lock (讀寫鎖):對應 DB 的 FOR SHARE 與 FOR UPDATE 的組合,實現「多讀單寫」。
  • Semaphore (信號量):用於控制同時存取資源的數量(如資料庫連線池)。

(TBC)

Leave a Reply

Your email address will not be published. Required fields are marked *