死锁通常意味着线程(或进程)A正在等待线程B,同时线程B正在等待线程A.
目前我在我们的应用程序中遇到了类似的情况。线程A正在等待线程B设置事件。但是,线程B 不等待线程A,它不会设置事件(无论是什么原因)。我想知道这种情况是否也可以被称为“僵局”,还是有另一个术语?
答案 0 :(得分:5)
我称之为错误或糟糕的设计。但如果一个线程仍在运行,那么它不会死锁。
答案 1 :(得分:4)
严格地说,这不是死锁,这是你最初所说的(除了通常可能有一整个线程循环,每个线程等待下一个锁定:A-> B-> ......- > Z-> A)
我认为你可以称之为resource starvation,但这是一个非常通用的术语,也涵盖了死锁。
答案 2 :(得分:3)
我称之为starvation(ressource是CPU),而不是deadlock。
答案 3 :(得分:1)
是的 - 我也称这是一个僵局。
但是,只有一个线程(线程A)受其影响,而不是整个应用程序。
答案 4 :(得分:0)
以下是我的观点:
死锁是程序的全局状态不再进展的情况。 如果A被阻止但程序仍然可以终止,因为B可能找到解决方案,那么它不是死锁。