正在等待永远不会触发死锁的事件?

时间:2009-12-17 13:51:45

标签: multithreading concurrency terminology

死锁通常意味着线程(或进程)A正在等待线程B,同时线程B正在等待线程A.

目前我在我们的应用程序中遇到了类似的情况。线程A正在等待线程B设置事件。但是,线程B 等待线程A,它不会设置事件(无论是什么原因)。我想知道这种情况是否也可以被称为“僵局”,还是有另一个术语?

5 个答案:

答案 0 :(得分:5)

我称之为错误或糟糕的设计。但如果一个线程仍在运行,那么它不会死锁。

答案 1 :(得分:4)

严格地说,这不是死锁,这是你最初所说的(除了通常可能有一整个线程循环,每个线程等待下一个锁定:A-> B-> ......- > Z-> A)

我认为你可以称之为resource starvation,但这是一个非常通用的术语,也涵盖了死锁。

答案 2 :(得分:3)

我称之为starvation(ressource是CPU),而不是deadlock

答案 3 :(得分:1)

是的 - 我也称这是一个僵局。

但是,只有一个线程(线程A)受其影响,而不是整个应用程序。

答案 4 :(得分:0)

以下是我的观点:

死锁是程序的全局状态不再进展的情况。 如果A被阻止但程序仍然可以终止,因为B可能找到解决方案,那么它不是死锁。