目录
1.死锁
1.1 死锁概念
百度百科解释:死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。
举个例子:现在有一个苹果,一个橘子,两个小朋友(小明,小红)
小明分到了苹果,小红分到了橘子:
此时小明想去要小红手里的橘子,但是不愿意放下自己的苹果,
而小红同时想去要小明手里的苹果,但是也不愿意放下手中的橘子,现在谁都不让谁,就产生了“死”状态。
1.2 四个必要条件
死锁产生的四个必要条件:
1)互斥条件:一个资源只能被一个进程占用,其他进程请求资源只能等待,直到占用的资源释放。
2)请求和保持条件:一个线程已经拥有一个资源,抓着不放的同时,又想拥有另一个进程已经占有的另一个资源。例如:小明想要小红的橘子一样。