死锁是在并发环境下,两个或者多个进程(线程)互相等待对方持有的资源而无法继续执行的状态。
产生死锁的必要条件:
1. 互斥条件:就一个资源每次只能被一个进程(线程)占用,即在一段时间内,资源只能被一个进程(线程)独占;
2.请求与保持条件:进程在请求新的资源的同时不会释放已经占有的资源;
3.不可抢占条件:资源只能由持有者主动释放,其他进程无法强制剥夺持有者资源;
4. 循环等待条件:一组进程互相等待对方所持有的资源,形成一个循环等待的链式结构。
破坏死锁的方法:
上述条件一个不满足 ,就不会发生死锁。