什么是“死锁”和“饥饿”

死锁(deadlock)

指的是两个或者两个以上的进程相互竞争系统资源,导致进程永久阻塞。

例如:

1、桌子上有慢慢一桌子的美食,但是只有一双筷子。

2、甲拿了一根,然后在找另一根。

3、乙拿了一根,然后也在找另一根。

4、因为他们都掌握了对方必需的资源,导致最后他们俩谁都吃不到美食。

饥饿(starvation)

指的是等待时间已经影响到进程运行,此时成为饥饿现象。如果等待时间过长,导致进程使命已经没有意义时,称之为“饿死”。

例如:

1、小明要告诉妈妈明天开家长会。

2、小明妈妈因为工作太忙,在公司加班,没有回家。

3、于是第二天,小明的妈妈就错过了家长会。(“饿死”)

4、其实小明的妈妈没有出现“死锁”。只是小明的优先级过低,不如工作重要。

其他文章