// 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;
}