C++多线程同步(采用事件对象Event)
来源:互联网 发布:一路一带破产知乎 编辑:程序博客网 时间:2024/05/02 02:03
C++多线程同步(采用事件对象Event)
#include <Windows.h>#include <iostream>using namespace std;DWORD WINAPI Fun1Proc(LPVOID lpParameter);//线程1的入口函数DWORD WINAPI Fun2Proc(LPVOID lpParameter);//线程2的入口函数int g_tickets = 100;//总票数HANDLE g_hEvent;//全局事件对象void main(){HANDLE hThread1;HANDLE hThread2;//创建自动重置事件内核对象g_hEvent = CreateEvent(NULL,FALSE, FALSE, "tickets");//保证应用程序只有一个实例if (g_hEvent){if (ERROR_ALREADY_EXISTS == GetLastError()){cout<<"只有一个实例可以运行!"<<endl;return;}}SetEvent(g_hEvent);//设置事件对象为有信号//创建线程hThread1 = CreateThread(NULL, 0 , Fun1Proc, NULL, 0, NULL);hThread2 = CreateThread(NULL, 0 , Fun2Proc, NULL, 0, NULL);CloseHandle(hThread1);//并没有终止线程的运行;当不再需要线程句柄时,应将其关闭,让这个线程内核对象的引用计数减1CloseHandle(hThread2);//让主线程睡眠4秒Sleep(4000);//关闭事件对象句柄CloseHandle(g_hEvent);}DWORD WINAPI Fun1Proc(LPVOID lpParameter){while (TRUE){//请求事件对象WaitForSingleObject(g_hEvent,INFINITE);if (g_tickets>0){Sleep(1);cout<<"Thread1 sell ticket :"<<g_tickets--<<endl;SetEvent(g_hEvent);}else{SetEvent(g_hEvent);break;}}return 0;}DWORD WINAPI Fun2Proc(LPVOID lpParameter){while (TRUE){//请求事件对象WaitForSingleObject(g_hEvent,INFINITE);if (g_tickets>0){Sleep(1);cout<<"Thread2 sell ticket :"<<g_tickets--<<endl;SetEvent(g_hEvent);}else{SetEvent(g_hEvent);break;}}return 0;}
0 0
- C++多线程同步(采用事件对象Event)
- 多线程同步之Event(事件对象)
- 多线程同步(C++)event
- 多线程--同步(事件Event)
- 多线程编程(13) - 多线程同步之 Event (事件对象)
- C++多线程同步之事件(Event)
- Windows多线程(四) 经典线程同步 事件Event
- 多线程(六)经典线程同步问题事件Event
- C++多线程同步(采用互斥对象Mutex)
- Windows中多线程同步之事件(Event)
- 多线程6:经典线程同步 事件Event
- Windows进程同步之事件内核对象(Event)
- 线程的同步互斥之事件对象(Event)
- 线程同步 事件 Event 内核对象 CreateEvent
- 【C#】事件(Event)
- 采用事件内核对象(Event)控制子线程的退出
- Windows多线程编程(3)同步对象——Event对象
- javascript事件对象(event)
- Spring事务管理(详解+实例)一
- 给IDEA换一个酷炫的主题
- js 正则表达式语法
- Android第三方登录详解2
- ue4插件开发
- C++多线程同步(采用事件对象Event)
- Android Studio2.0的逆天功能Instant Run(告别编译运行)
- 检测 SURF,SIFT,MSER特征
- TempData ViewBag ViewData
- 软键盘弹出,recycleview内容消失不见 SwipeToLoadLayout
- 笔记本外置显示器不清晰的问题解决
- ROS Navigation-----TF配置
- Nginx+Tomcat+Redis实现session共享
- PHP读取Excel文件内容