"死锁是指多个进程或线程因争夺资源而互相等待,导致所有进程都无法继续执行的现象。"
2. **四个必要条件**:
- (1) "互斥条件:资源一次只能被一个进程独占使用"
- (2) "占有并等待:进程持有资源的同时又请求其他资源"
- (3) "非抢占:已分配的资源不能被强制夺取"
- (4) "循环等待:存在进程间的环形等待链"
3. **必要条件关系**:
- "这四个条件必须同时满足才会发生死锁"
4. **避免方法**:
- "破坏任一条件即可预防死锁"
- "例如通过资源预分配破坏'占有等待'"
- "或强制资源抢占破坏'非抢占'条件"
5. **实际应用**:
- "编程时应确保锁的获取顺序一致"
- "使用带超时的锁获取机制(如try_lock)"
- "可以采用银行家算法进行死锁检测"