
【計】 live lock
alive; exactly; live; product; vivid; work
【醫】 vivi-
lock; lock up
【計】 lock stock and barrel
【醫】 lock
在計算機科學與并發編程領域,"活鎖"(英文:livelock)指一種系統狀态,其中兩個或多個進程持續改變自身行為以響應其他進程的操作,但無法推進實際任務進展。與死鎖(deadlock)不同,活鎖中的進程并未完全阻塞,而是處于無效的循環響應狀态。
其核心特征可通過以下公式描述:
$$ text{進程A} rightarrow text{響應進程B} rightarrow text{進程B} rightarrow text{響應進程A} rightarrow text{循環持續} $$
這一現象常見于資源分配算法、分布式系統及多線程編程場景。
典型示例包括:
解決活鎖的方案通常涉及引入隨機延遲、優先級機制或狀态檢測算法(參考:ACM Transactions on Computer Systems)。在數據庫領域,PostgreSQL等系統通過鎖超時設置和事務回滾策略規避活鎖風險(參考:PostgreSQL 15官方手冊)。
活鎖(Livelock)是計算機科學和數據庫領域中的一種并發控制問題,其核心特征和解釋如下:
活鎖指多個進程或線程未被阻塞,但因反複嘗試滿足未達成的條件而陷入無限循環的失敗嘗試中。例如:
特征 | 活鎖 | 死鎖 |
---|---|---|
進程狀态 | 持續改變狀态(活躍) | 完全阻塞(靜止) |
解決可能性 | 可能自行解開(如隨機退避) | 需外部幹預才能解除 |
資源占用方式 | 資源可能被反複申請和釋放 | 資源被永久占用不釋放 |
(對比依據:)
(案例參考:)
活鎖本質上是一種特殊形式的饑餓(Starvation),但不同于普通饑餓的單向資源匮乏,活鎖涉及多個實體的交互性資源競争(如和所述)。這種現象在實時系統中尤為危險,可能造成CPU資源耗盡(提示)。
被拒絕的東西杯式粘度計層間訊號轉移單腿無頭畸胎電離定貨資料分發紅利隔行汞合金處置光電閱讀器過熱區何勒内斯角化過度焦甯解熱銀膠菊記錄曲線可憐奎諾溶兩性體氯唑西林胖大海潛在損失親屬人造瓷舌下小腺使麻痹算術核對它們自己透鏡的圖象銳化