#include "stdafx.h"
#include <windows.h>
HANDLE g_hSet = NULL;
HANDLE g_hClean = NULL;
int g_max = 10;
int g_num = 0;
DWORD WINAPI t1(LPVOID lpargv)
{
for(int i =0;i<g_max;i++)
{
WaitForSingleObject(g_hSet,INFINITE);
g_num = 1;
//Sleep(100);
printf("线程1执行了 %d\n",g_num);
SetEvent(g_hClean);
}
return 0;
}
DWORD WINAPI t2(LPVOID lpargv)
{
for(int i =0;i<g_max;i++)
{
WaitForSingleObject(g_hClean,INFINITE);
g_num = 0;
//Sleep(100);
printf("线程2执行了 %d\n",g_num);
SetEvent(g_hSet);
}
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
//第二个参数true通知类型,false互斥类型
g_hSet = CreateEvent(NULL,FALSE,TRUE,NULL);
g_hClean = CreateEvent(NULL,FALSE,FALSE,NULL);
HANDLE hThread[2];
hThread[0] = CreateThread(NULL,0,t1,NULL,0,NULL);
hThread[1] = CreateThread(NULL,0,t2,NULL,0,NULL);
WaitForMultipleObjects(2,hThread,TRUE,INFINITE);
CloseHandle(hThread[0]);
CloseHandle(hThread[1]);
CloseHandle(g_hSet);
CloseHandle(g_hClean);
return 0;
}
事件实现同步
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 1、运城职业技术学院 运城(古称河东,因“盐运之城”得名。柳宗元,世称“柳河东”“河东先生”,因官终广西柳州刺史,...
- 一、如果让你实现属性的weak,如何实现的? PS: @property 等同于在.h文件中声明实例变量的get/...