死锁

死锁

死锁的条件

  1. 互斥条件。一个资源一次只能被一个线程所使用
  2. 不可抢占条件。只能由自己线程释放
  3. 占有且等待条件。
  4. 循环等待条件。
    以上四个条件缺一不可,只要任何一个条件不成立,就不会发生死锁。

死锁的解决方式有哪些

但是实际项目中,使用到锁,一般都是要保证数据安全,最常用的就是排它锁。所以条件1和2一般不可改变,只能改变条件3和4。

  1. 排序打破循环条件
  2. 主动放弃资源,使用带有过期时间的锁。
  3. 如果是数据库死锁的话,可以进行垂直拆表,一劳永逸

posted on 2024-01-21 01:00  wucanqin  阅读(2)  评论(0编辑  收藏  举报

导航