# 悲观锁

> 在关系数据库管理系统里，悲观并发控制（又名“悲观锁”，Pessimistic Concurrency Control，缩写“PCC”）是一种并发控制的方法。它可以阻止一个事务以影响其他用户的方式来修改数据。如果一个事务执行的操作读某行数据应用了锁，那只有当这个事务把锁释放，其他事务才能够执行与该锁冲突的操作。

- ID: m06277
- 分类: technical
- 领域: 软件工程

## 定义

假设一定会发生冲突，因此在读取数据时就先加锁，阻止其他人操作，直到我修改完成。适用于写多读少、冲突高发的场景，安全性高但效率低。脚手架作用： 先占坑，后干活。在资源竞争激烈或试错成本极高的场景（如抢公章、改核心代码），必须采用悲观锁。宁可牺牲效率，也要确保独占权，防止并发导致的灾难。

## 机制

并发控制策略：在修改数据前先加锁，假设冲突「会发生」，阻止他者同时写入。机理是以串行化换取一致性，代价是并发度下降。

## 练习

读取并加排他锁（如 SELECT FOR UPDATE）。在事务内完成修改后提交释放。设计超时与重试防死锁。

## 脚手架用法

先占坑，后干活。在资源竞争激烈或试错成本极高的场景（如抢公章、改核心代码），必须采用悲观锁。宁可牺牲效率，也要确保独占权，防止并发导致的灾难。

[阅读网页](https://thinkingmodels.site/entries/detail/m06277)
