64,652
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <windows.h>
int a =50 ;
HANDLE g_hEvent = CreateEvent(NULL, true, false, NULL);
//子线程函数1
DWORD WINAPI ThreadFun1(LPVOID pM)
{
printf("子线程1的线程ID号为:%d\n子线程\n", GetCurrentThreadId());
printf_s("还在子线程1中\n");
WaitForSingleObject(g_hEvent,INFINITE);
int b = a*a;
printf_s("b是%d\n",b);
return 0;
}
//子线程函数2
DWORD WINAPI ThreadFun2(LPVOID pM)
{
printf("子线程2的线程ID号为:%d\n子线程\n", GetCurrentThreadId());
printf_s("还在子线程2中\n");
WaitForSingleObject(g_hEvent,INFINITE);
int c = a+5;
printf_s("c是%d\n",c);
return 0;
}
//主函数,所谓主函数其实就是主线程执行的函数。
int main()
{
HANDLE handle1 = CreateThread(NULL, 0, ThreadFun1, NULL, 0, NULL);
HANDLE handle2 = CreateThread(NULL, 0, ThreadFun2, NULL, 0, NULL);
while(a<10000,a++)
{
if(a>100)
{
SetEvent(g_hEvent);
}
}
WaitForSingleObject(handle1,INFINITE);
printf_s("结束了\n");
return 0;
}