死锁

什么是死锁?

多个进程互相等待对方所占有的资源所形成的僵持局面。

形成原因:

系统分配资源太少,不能支持多个并发进程的需求;

进程推进顺序不合理,互相占有彼此需要的资源,又请求对方所占有的资源,形成死锁

死锁产生的必要条件:

互斥条件:某个资源在同一时刻只能被一个进程所占用。

不可抢占条件:进程所获得的资源在使用完成之前,其他资源申请的进程不能抢占资源,而是等待占用进程释放才能使用。

占有且等待条件:一个进程至少占用一个资源,同时又申请被占有资源的情况下,处于等待状态。

循环等待条件:若干个进程形成循环链,每个都占有对方申请的下一个资源

原文地址:https://www.cnblogs.com/ashen1999/p/12903711.html