在线急问一个线程同步问题
请问各位,下面的程序怎么执行有问题,线程函数有时被执行,有时不被执行,为什么呀?快崩溃了!急!
#include<stdio.h>
#include<windows.h>
HANDLE hEvent;
int i = 1;
char g_cArray[10];
DWORD threadProc2(LPVOID lparam)
{
WaitForSingleObject(hEvent,INFINITE);
printf("%d\n",i);
SetEvent(hEvent);
return 0;
}
DWORD threadProc1(LPVOID lparam)
{
WaitForSingleObject(hEvent,INFINITE);
i++;
printf("e%d\n",i);
SetEvent(hEvent);
return 0;
}
void main(void)
{
hEvent = CreateEvent(NULL,false,false,NULL);
HANDLE hThread1 = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&threadProc1,NULL,0,NULL);
HANDLE hThread2 = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&threadProc2,NULL,0,NULL);
SetEvent(hEvent);
printf("%d\n",i);
CloseHandle(hThread1);
CloseHandle(hThread2);
CloseHandle(hEvent);
}