过去我记得看到C的线程库进行了死锁检测。我不记得它叫什么了,而且我很难找到合适的术语组合来让Google告诉我。
我记得这是:
谁能告诉我我在想什么?
答案 0 :(得分:0)
pthread_mutex_t类型是: PTHREAD_MUTEX_NORMAL没有死锁检测重新锁定导致死锁 PTHREAD_MUTEX_ERRORCHECK - 尝试重新锁定时返回错误 PTHREAD_MUTEX_RECURSIVE - 为给定的互斥锁排队多个锁请求(锁定计数)。
这适用于pthread_mutex_lock,pthread_mutex_unlock和pthread_mutex_trylock。
我猜这是你看到僵局讨论的地方。其他类型的死锁 - 例如:通过等待彼此的锁来从两个资源中相互排除两个线程 - 未被检测到。程序员应该检测它们。
我同意这是一个奇怪的问题
请参阅:http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_mutex_lock.html