Intro
並行控制的核心目標是確保 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)