举个简单的例子,假如现在有两个人非常饥饿了,非常的想要吃饭,你知道,通常我们吃饭需要用筷子和饭碗,问题来了,假设这里只有一双筷子和一个饭碗,你们两人一人得到了一样(假设一人得到了筷子,而另一人得到了饭碗),但是你们现在非常的想吃饭,但是想吃饭必须筷子和饭碗都具备,于是你们互相要求对方把相应的道具给自己,但是都由于都非常想吃饭,为了能够尽快的吃到饭,所以都不想给筷子或者饭碗给对方,所以就这样僵持不下,到最后两个人都没有吃到饭,所以最后就饿死了(哈哈。。。)
上述中两个人便是两个进程,或者线程,筷子和饭碗就相当于CPU资源,死锁的意思就是说两个进程彼此都有彼此需要的资源,但是都不释放自己所拥有的资源,导致两个进程得不到执行,僵持下去,形成死锁 |