什么是死锁?怎么解决?

204 阅读1分钟

死锁的四个必要条件

  1. 一个事务阻塞,请求其他资源的时候不会释放手中的资源
  2. 一个事务手中的资源除非自己释放,不能被剥夺
  3. 一个资源只能一个事务获得
  4. 多个事务,互相请求其他事务的资源,形成互相等待

解决

  1. 如果多个事务并发读取多个表,让他们按照一定的顺序操作者多个表
  2. 如果一个事务需要获得多个资源,让它一次性获得所有需要的资源
  3. 对于容易发生死锁的业务,升级锁的粒度,使用表锁