C++使用CriticalSection实现线程同步实例
来源:互联网 发布:淘宝助理导出没有图片 编辑:程序博客网 时间:2024/05/02 04:17
转: C++使用CriticalSection实现线程同步实例
这篇文章主要介绍了C++使用CriticalSection实现线程同步实例,是使用CriticalSection对前文实例的扩展,具有一定的参考借鉴价值,需要的朋友可以参考下
本文实例讲述了C++使用CriticalSection实现线程同步的方法,在前文C++线程同步实例分析的基础上增加了四行代码,使用了四个函数:
EnterCriticalSection ::DeleteCriticalSection ::EnterCriticalSection ::LeaveCriticalSection此时,打印出来的数字就相等了。
具体代码如下:
#include "stdafx.h" #include <Windows.h> DWORD g_cnt1; DWORD g_cnt2; BOOL g_bContinue = TRUE; CRITICAL_SECTION cs; DWORD WINAPI ThreadProc(__in LPVOID lpParameter) { ::EnterCriticalSection(&cs); while(g_bContinue) { g_cnt1++; g_cnt2++; } ::LeaveCriticalSection(&cs); return 0; } int _tmain(int argc, _TCHAR* argv[]) { HANDLE hThread[2]; g_cnt1 = g_cnt2 = 0; ::InitializeCriticalSection(&cs); hThread[0] = ::CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL); hThread[1] = ::CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL); Sleep(1000); g_bContinue = FALSE; ::WaitForMultipleObjects(2, hThread, TRUE, INFINITE); printf("g_cnt1=%d\n",g_cnt1); printf("g_cnt2=%d\n",g_cnt2); ::DeleteCriticalSection(&cs); ::CloseHandle(hThread[0]); ::CloseHandle(hThread[1]); return 0; }
希望本文所述对大家的C++程序设计有所帮助。
0 0
- C++使用CriticalSection实现线程同步实例
- C++使用CriticalSection实现线程同步实例
- C++使用CriticalSection实现线程同步
- 使用CriticalSection进行线程同步
- 线程同步 CriticalSection
- 线程同步:CriticalSection关键区域
- 线程同步CriticalSection与Mutex
- Linux C 线程同步实例
- 孙鑫 第十五/十六课之四 线程同步CriticalSection
- Linux C编程(5) 线程同步实例
- 使用信号实现线程同步
- 使用ReentrantLock实现线程同步
- 使用ReentrantLock实现线程同步
- 线程同步方法 - 互斥锁的使用实例
- 多线程同步互斥实例——使用synchronized实现线程通信和互斥
- windows下使用Critical Section和Mutex实现线程同步实例
- 多线程同步互斥实例——使用synchronized实现线程通信和互斥
- STL线程同步最常用和最快速的临界段----CriticalSection
- java 导入 十万级excel数据
- Mac 性能优化Instruments之Core Animation
- jquery each的用法
- 【Tomcat】Linux上Tomcat发布-JavaWeb项目-访问时不通过项目名
- 学习笔记:ubuntu 15.04 修改网卡为 eth0 和 wlan0(实测可用)
- C++使用CriticalSection实现线程同步实例
- sogou-input install for debian
- 发送本地广播
- C++ string 用法详解
- Java 查找两个文件夹中不同文件名的文件
- elasticsearch-jdbc插件快速部署和要点说明
- VBA序列化指定区域的数据
- AngularJS资源合集[备忘]【申明:来源于网络】
- Sublime Text 高级替换功能 Demo - 利用正则表达式修改内容