C++ 锁,socket死锁
2015-08-07 17:07
323 查看
我们常常对需要多线程共同访问的资源进行加锁,但当在同一个线程中时,一个锁还没离开之前,还可以加一道锁。。。
例:
CRITICAL_SECTION cs;
InitializeCriticalSection(&cs);
EnterCriticalSection(&cs);
EnterCriticalSection(&cs); //可以运行到这里,不会形成死锁!
LeaveCriticalSection(&cs);
当一个socket在线程A正在recv或send数据,另一个线程B进行closesocket操作,则会造成死锁
例:
CRITICAL_SECTION cs;
InitializeCriticalSection(&cs);
EnterCriticalSection(&cs);
EnterCriticalSection(&cs); //可以运行到这里,不会形成死锁!
LeaveCriticalSection(&cs);
当一个socket在线程A正在recv或send数据,另一个线程B进行closesocket操作,则会造成死锁
相关文章推荐
- C++的输入输出
- 【C/C++】String类实现
- Google代码规范工具Cpplint的使用
- Google代码规范工具Cpplint的使用
- C++编程语言学习资料
- C++小结:多态(2) --类别与实现、动态多态
- C++实现List类
- 结构体赋值问题!
- C++快速排序
- 第六篇:C++语言源程序中每一行加一个反斜杠的意思
- c++ 内存池
- C语言之文件操作03——最长最短行查找和统计
- c++内存池
- 【C++】链表
- Word 中插入 C/C++ 代码(转)
- 虚表(C++)virtual table
- 字符串的组合算法问题的C语言实现攻略
- c语言参数传递方式
- 《深入理解C++对象模型》读书笔记(二)
- C语言编程优化运行速度