0.目录
1.引发-锁冲突
2.解决-锁冲突
1.引发-锁冲突
在并发系统中,不同线程出现循环资源依赖,各个线程都在等待别的线程释放资源,导致这些线程都处于无限等待状态,这种现象称为死锁;
😁举个例子:
如上所示,事务A在等待事务B释放id=2的行锁,事务B在等待事务A释放id=1的行锁,事务A和事务B相互等待对方释放资源,陷入死锁状态!
解决死锁策略:
- 进入等待状态,直到超时;innodb_lock_wait_timeout默认时间是50s
- 发起死锁检测,,发生死锁,主动回滚,将innodb_deadlock_detect=on,innoDB默认开启;
2.解决-锁冲突
解决锁冲突,本文提供三种方案;
way1:
如果确定某个