#include <windows.h>
#include <process.h>
#include<iostream>
#include<stdio.h>
#define NUM_THREAD 50
unsigned WINAPI threadInc(void* arg);
unsigned WINAPI threadDes(void* arg);
HANDLE hEvent;
int main(int argc, char* argv[])
{
HANDLE Handles[2]{};
int i;
hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
Handles[0] = (HANDLE)_beginthreadex(NULL, 0, threadInc, NULL, 0,
NULL);
Handles[1] = (HANDLE)_beginthreadex(NULL, 0, threadDes, NULL, 0,
NULL);
WaitForMultipleObjects(NUM_THREAD, Handles, TRUE, INFINITE);
CloseHandle(hEvent);
system("pause");
return 0;
}
unsigned WINAPI threadInc(void* arg)
{
for (int j=0;j<2;j++)
{
int i;
std::cout << "我是猪" << std::endl;
WaitForSingleObject(hEvent, INFINITE);
for (int i = 0; i < 2; i++)
{
std::cout << "我是猪22" << std::endl;
}
SetEvent(hEvent);
}
return 0;
}
unsigned WINAPI threadDes(void* arg)
{
for (int j=0;j<2;j++)
{
int i;
std::cout << "woshizhu" << std::endl;
WaitForSingleObject(hEvent, INFINITE);
for (int i = 0; i < 2; i++)
{
std::cout << "woshizhu33" << std::endl;
}
SetEvent(hEvent);
}
return 0;
}
为什么这里的代码可以执行呢?我的结果还成功输出了,我是x等字样
这输出 很正常呀 ,你为啥认为不能输出呢?