读书人

请教一般线程挂死的原因都有哪些

发布时间: 2012-01-13 22:43:30 作者: rapoo

请问一般线程挂死的原因都有哪些?
我有一个线程,会从一个bufferlist里面读取数据帧来处理。在线程中用了WaitForMutiObjects来等待这个BufferList的m_event。

但是有时候线程感觉像挂死了,不再处理BufferList中的数据帧了。也不知道是什么原因,而且这个问题不重现,偶尔会发生一次。非得把进程重启才能解决。

请各位大大讲讲一般的线程挂死有哪些情况?谢谢!

[解决办法]
一般是同步没做好,WaitForMutiObjects死等。
[解决办法]
主要是同步没做好, 程序逻辑问题
比如CRITICAL_SECTION,
A.lock, B.lock, A.unlock, B.unlock,这个顺序就很可能造成死锁


-------------------------------------------------------
广告:VC/WinAPI 网络/多线程讨论 QQ群, 群号:41356711
[解决办法]
可能是照成死锁了,检查一下
[解决办法]
挂死的时候用Debugger Attach住,一看就明白了,尤其是Windbg/ntsd 等。

读书人网 >VC/MFC

热点推荐