事件是在线程同步中最常用的一种同步对象,可手动自动状态。

来源:互联网 发布:影视制作软件下载 编辑:程序博客网 时间:2024/05/18 00:33
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <windows.h>#include <stdlib.h>int g_nNum = 0;HANDLE g_hEventA = nullptr;HANDLE g_hEventB = nullptr;DWORD WINAPI ThreadProcA(LPVOID lpParam){for (int i = 0; i < 5;i++){WaitForSingleObject(g_hEventA, INFINITE);ResetEvent(g_hEventB);printf("%d ", g_nNum++);SetEvent(g_hEventB);}return 0;}DWORD WINAPI ThreadProcB(LPVOID lpParam){for (int i = 0; i < 5;i++){WaitForSingleObject(g_hEventB, INFINITE);ResetEvent(g_hEventA);printf("%d ", g_nNum++);SetEvent(g_hEventA);}return 0;}int _tmain(int argc, _TCHAR* argv[]){if (!(g_hEventA = CreateEvent(NULL, TRUE, TRUE, NULL))) return 0;if (!(g_hEventB = CreateEvent(NULL, TRUE, FALSE, NULL))) return 0;CreateThread(NULL, 0, ThreadProcA, NULL, 0, nullptr);CreateThread(NULL, 0, ThreadProcB, NULL, 0, nullptr);system("pause");return 0;}

0 0