C++ 锁,socket死锁

来源:互联网 发布:c语言中求绝对值的代码 编辑:程序博客网 时间:2024/06/16 16:51

我们常常对需要多线程共同访问的资源进行加锁,但当在同一个线程中时,一个锁还没离开之前,还可以加一道锁。。。


例:

                CRITICAL_SECTION cs;


InitializeCriticalSection(&cs);
EnterCriticalSection(&cs);
EnterCriticalSection(&cs);             //可以运行到这里,不会形成死锁!
LeaveCriticalSection(&cs);


当一个socket在线程A正在recv或send数据,另一个线程B进行closesocket操作,则会造成死锁

0 0