死锁 Deadlock
什么是死锁?
简单说,是指两个或两个以上的线程在执行过程中,彼此持有对方需要的资源和处于等待对方释放资源的现象, 如果没有外力作用,这种状态将一直持续下去。
如何避免?
避免死锁的一般建议是:对竞争资源按顺序采用互斥加锁
当然,如果能在编程时就注意这方便的问题,将可以用更好的方式,比如:
- 避免嵌套锁
- 避免在持有锁时调用用户提供的代码
- 使用固定顺序获取锁
- 使用锁的层次结构
认识自己,接受自己,忘记自己,追随自己的灵魂
简单说,是指两个或两个以上的线程在执行过程中,彼此持有对方需要的资源和处于等待对方释放资源的现象, 如果没有外力作用,这种状态将一直持续下去。
避免死锁的一般建议是:对竞争资源按顺序采用互斥加锁
当然,如果能在编程时就注意这方便的问题,将可以用更好的方式,比如: