
不同存储引擎对于锁的支持粒度是不同的,由于 InnoDB 是 MySQL 的默认存储引擎,所以本文以 InnoDB 对于锁的支持进行阐述。

锁的分类
为了解决并发一致性问题,MySQL 支持了很多种锁来实现不同程度的隔离性,以保证数据的安全性。
2020/9/7大约 29 分钟

不同存储引擎对于锁的支持粒度是不同的,由于 InnoDB 是 MySQL 的默认存储引擎,所以本文以 InnoDB 对于锁的支持进行阐述。

为了解决并发一致性问题,MySQL 支持了很多种锁来实现不同程度的隔离性,以保证数据的安全性。
本文先阐述 Java 中各种锁的概念。
然后,重点介绍 Lock 和 Condition 两个接口及其实现。并发编程有两个核心问题:同步和互斥。
互斥,即同一时刻只允许一个线程访问共享资源;
同步,即线程之间如何通信、协作。
这两大问题,管程(
sychronized)都是能够解决的。J.U.C 包还提供了 Lock 和 Condition 两个接口来实现管程,其中 Lock 用于解决互斥问题,Condition 用于解决同步问题。