什么是死锁
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
死锁产生的四个条件
互斥条件
:指进程对所分配的资源进行排他性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其他进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。例子:我正在玩电脑,你也想玩,但我就不给你,那你只能等着了,有本事打我呀
请求和保持条件
:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其他进程占有,此时请求进程阻塞,但又对自己已获得的其他资源保持不放。例子:我突然不想玩电脑了,想看电视,你把电视给占了,那我只好等着了(天道有轮回,苍天绕过谁), 我又不想把电脑交给其他人,万一我一会改变主意又想玩电脑了呢
不可剥夺条件
:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放例子:我在玩游戏的时候谁也抢不走电脑,就是这么硬!
环路等待条件
:指在发生死锁时,