·

简单说就是锁定数据,同一时间只允许一个地方更改,避免竞争。举个简单例子,记账:

我的卡里有 1000¥,订阅了一个服务,每月自动扣费 600¥,刚好要买一个东西需要 500¥,如果两个扣费操作同时进行,读取到的账户余额都是 1000¥,结果两个都可以扣费成功(这就坏账了),如果加了锁,同时只能进行一个操作,必须区分先后,无论哪个扣费先执行,都会发现后面余额不足报错,这样记账就不会记错。

通常用来解决同时操作(并发写)导致的数据不一致性问题。Mysql的锁种类很多:行级锁、页级锁、表级锁,你可以看文档学习下:Transactional and Locking Statements

另外 “事务”、ACID、CAP 定理、Base理论等概念也建议你了解下。

Replies
1

事务和ACID了解了,CAP定理和Base理论这就去学

所以锁就相当于Java中的线程同步(synchronized)对吗