是否有任何技术或工具可用于在运行时检测此类死锁?
在工作线程(几个中的一个,通常是4-6个)中描绘这个
try
WaitForSingleObject(myMutex);
DoSTuffThatMightCauseAnException;
except
ReleaseMutex(myMutex);
end;
或更普遍的是有一种设计模式来避免这些错误吗?
经过长时间的黑客攻击后,我在上面的代码中编写了上面的代码
答案 0 :(得分:6)
更好的编码风格是使用try / finally而不是try / except for mutex release(或任何其他类型的资源释放,就此而言),即:
try
WaitForSingleObject(myMutex);
try
DoSTuffThatMightCauseAnException;
finally
ReleaseMutex(myMutex);
end;
except
...
end;