Post

死锁

死锁四大条件

  • 互斥条件:资源在一个时间段内只能为一个进程使用,其他进程阻塞等待
  • 保持与请求条件:进程在保持占有一个资源,又请求新资源
  • 不可剥夺条件:进程占用的资源只能由该进程释放
  • 循环等待条件:多个进程形成循环等待资源释放

死锁处理方式(根据死锁产生的前中后)

预防死锁

  • 破坏死锁产生条件

避免死锁

  • 银行家算法
  • 加锁顺序
  • 加锁时限

检测死锁

  • 由操作系统实现死锁检测进程,若产生死锁,执行解除死锁

解除死锁

  • 撤销进程法
  • 进程回退法

go死锁场景

  • goroutine无限阻塞chan
  • mysql事务行锁导致死锁
This post is licensed under CC BY 4.0 by the author.