出现死锁必须满足以下几个条件:
1.互斥条件:该进程拥有的资源,其他进程只能等待其释放。
2.不剥夺条件:该进程拥有的资源只能由它自己来释放。
3.请求和保持条件:请求其他的资源,同时自己拥有的资源又不愿意放手。
4.循环等待:A等待B持有的资源,B等待A持有的资源,相互等待对方释放。
总结一下:
多个进程之间对资源的相互竞争,造成无限时长等待,就是造成死锁。
死锁解决办法:
我们可以通过对锁加时效性,或者死锁检测来处理。