# 乐观锁（Optimistic Locking）

### 缩写：无

### 简述

假设冲突少：读时取版本号/时间戳，写时用条件更新校验版本；失败则重试或放弃。常在应用层实现，不长期持有 DB 锁。

### 使用场景

Web 表单更新、库存扣减（配合条件更新）、低冲突资源。

### 实践与应用

• UPDATE ... WHERE id=? AND version=?；影响行数 0 即冲突。
• 冲突策略：重读重试或提示用户。
• 与唯一约束等 DB 手段组合。

### 注意事项

• 高冲突场景重试风暴，应改悲观或队列化。
• 忘记更新 version 等于无保护。

### 对比与易混

| | 乐观 | 悲观 |
|--|------|------|
| 思路 | 提交时检测冲突 | 先锁再改 |

### 信号与度量

版本冲突率、重试次数。

### 关联术语

• 悲观锁：先锁再改的对照
• 版本号 / CAS：常见实现
• 冲突重试：失败路径
