为Win32建立临界区
来源:互联网 发布:c与lua交互数组索引 编辑:程序博客网 时间:2024/06/06 01:04
临界区,可以看作是对一个需要操作共享变量的代码段,在多线程并发的情况下,为了不至于某个线程会取得脏数据,需要控制同一时刻( 这里用时刻好象不太确切,应该说,某个线程处理这个共享变量到一半,时间片到,而得到时间片的线程也要对这个共享变量进行操作 )进入临界区的线程.
在Win32中,有一个CRITICAL_SECTION变量,你需要做的就是在建立该变量后通过它来为资源声明一个保护,示例程序如下:
DWORD WINAPI ThreadFunc( LPVOID n ){
EnterCriticalSection( &critical_sec );
cout<<"abcdefgh"<<endl;
LeaveCriticalSection( &critical_sec );
return 0;
}
如果你在主线程中,启动多个以上这样的子线程,没有设置为临界区的化,输出的字母会变的凌乱不堪,因为流是共享资源,如果有多个填充流的线程操作,肯定会使得每个线程都无法得到预期的结果.
但是如果将对于输出流的操作编写为临界区,那么线程一旦开始对输出流进行操作,必然会完成它,因为一旦有线程霸占临界区,其他线程是无法再进入的.
- 为Win32建立临界区
- Win32 临界区实现原理浅析
- Win32多线程下—临界区
- Win32 临界区实现原理浅析
- [C++][Win32]临界区编程实例
- 说说win32多线程锁之临界区
- win32多线程锁之临界区
- 在Win32平台中,多读单写锁如何使用临界区实现?
- Win32多线程之临界区(Critical Sections)
- 何为临界区 /*Linux 学习*/
- win32临界代码段使用
- 临界资源 & 临界区
- 临界段临界区
- 临界区
- 临界区
- 临界区
- 临界区
- 临界区
- 使用 Apache MINA 开发高性能网络应用程序
- 纯 js 的 Ajax
- 阅读《linux系统分析与高级编程技术》
- 在Delphi7中调试COM+
- UITextField 中的文本为空,不代表text属性为nil
- 为Win32建立临界区
- 用DX8实现Skin Meshes(翻译版)
- 架设局域网windows补丁更新服务器 内网客户机也能同步更新补丁
- 时钟
- 电话转接的注意事项
- TCP Wrapper为具体实现的xinetd机制
- UCH二次开发问题总结
- grouping、with rollup的用法。
- CRM给企业带来的共同目标