关键节(Critical Seciton)与mutex的功能类似,但它只能由同一进程中的线程使用。关键节可以防止共享资源被同时访问。 进程负责为关键节分配内存空间,关键节实际上是一个CRITICAL_SECTION型的变量,它一次只能被一个线程拥有。在线程使用关键节之前,必须调用InitializeCriticalSection函数将其初始化。如果线程中有一段关键的代码不希望被别的线程中断,那么可以调用EnterCriticalSection函数来申请关键节的所有权,在运行完关键代码后再用LeaveCriticalSection函数来释放所有权。如果在调用EnterCriticalSection时关键节对象已被另一个线程拥有,那么该函数将无限期等待所有权。
解决方案 »
- GDI+ ,UpdateLayeredWindow画半透明窗口,在某些机器上非常非常慢
- 散分: 跨平台编程资源,c & c++开发
- 用程序实现sql server数据库"自动备份"!!!
- 关于initdialog的问题
- 急!请问在vc.net中为什么找不到iostream.h这个头文件了?
- 我在做一个类似资源管理器的文档/视图程序。看相关资料,在做一树形视图时(CTreeView),为什么总是要用到CTreeCttl呢?怎么相联系我也不
- 如何在D盘中查找符合一定规律的文件名???
- 请教如何激活MDI Child窗口
- 请教下面报错的原因,多谢
- MDI project为什么只能打开一次文件、一个窗口?
- 问有关WaitForMultipleObjects的细节
- 为伊消得人憔悴,VC模糊查询
保护的东东比作环境。那么,只有大家一起遵循该公约,才能够达到保护环境资源的目的。如果有其他不遵循公约的国家硬是要破坏环境,那么这个公约就失效了。
b++;
c++;
LeaveCriticalSection();那么a,b,c就不能被其它线程访问了?