粗粒度鎖保護大範圍資料(易爭用),細粒度鎖保護小資料結構(並行度高)。頻繁爭用時需細化粒度,多核心下效能提升明顯。
不可分割指令,atomic_t 整數與位元操作,無需鎖,適用簡單計數器。
忙等待,適合極短臨界區(不睡眠、不耗時)。注意:不可遞迴、獲取前必須關閉本地中斷(防中斷處理常同樣請求鎖造成死等)。下半部/Tasklet/軟中斷共享資料時需搭配 spin_lock_irqsave/spin_lock_bh 等變體。
讀共享/寫獨享,適合「讀多寫少」場景,保留自旋特性。
睡眠鎖,爭用時進入等待隊列睡眠,釋放 CPU。適用長時間持有鎖的場景。只能在程序上下文使用(中斷上下文不可睡眠)。持有信號量時可睡眠,但不可同時持有自旋鎖。互斥信號量(計數=1)最常用。
類比讀寫自旋鎖,但爭用時睡眠而非自旋。
簡化版信號量,嚴格擁有權語意,僅持有者可釋放,支援優先權繼承,防止優先權反轉。
單次事件通知,wait_for_completion/complete,適合驅動程式初始化同步。
寫者獨佔,讀者無鎖但需重試(檢查序號),適用「寫少讀多、資料結構小」場景。
極致讀端零開銷,寫端複製修改後原子替換指標,舊副本延遲釋放(等待所有預存讀者退出)。適用極度讀多寫少的全域資料結構。
選擇正確同步原語,是核心開發效能與正確性的關鍵。
Linux 硬件信息檢查神器:lscpu/lshw/lspci/lsblk/lsusb 等 7 大命令實戰
Linux yum 被鎖定無法執行?三步快速解除鎖定恢復正常
Linux 多命令順序執行與邏輯控制完全指南:; 、&&、||、管道、分組、子 Shell 實戰
SSH RSA 金鑰認證完整配置指南:Linux 與 Windows 雙端免密登入實戰
Linux 忘記 root 密碼?單用戶模式清除密碼 3 步驟搞定
緊急救援:/etc/fstab 錯誤導致 Linux 無法開機,單人模式修復全紀錄
VMware Workstation 實現 Windows 主機與 Linux 虛擬機文件夾共享圖文教程
Linux 故障診斷必備命令速查手冊:last、messages、lsb_release、df、top、iostat 深度解析