乐观锁与悲观锁

2021/3/3

乐观锁:总是假设最好的情况,每次拿数据时都认为别人不会修改,因此不会上锁,但在更新时会判断一下在此期间别人有没有更新这个数据,可以使用版本号机制。适用于读多写少的场景。

悲观锁:总是假设最坏的情况,每次拿到数据后都会认为别人会修改该数据,因此每次拿数据时都会上锁,阻塞其他人。MySQL中的锁机制:行锁,表锁,读锁,写锁;Java中的synchronized和ReentrantLock独占锁。适用于读少写多的场景。