全局变量int a=0;现用两个线程执行100次a++,求a的最终值
#include "stdafx.h"
#include <process.h>
#include <windows.h>
//子线程函数
int a=0;
unsigned int __stdcall ThreadFun(PVOID pM)
{
int i=0;
printf("线程ID号为%4d的子线程说:Hello World\n", GetCurrentThreadId());
for(i=0;i<100;i++)
printf("(%d)%d\t",GetCurrentThreadId(),a++);
return 0;
}
int main()
{
const int THREAD_NUM = 2;
HANDLE handle[THREAD_NUM];
for (int i = 0; i < THREAD_NUM; i++)
handle[i] = (HANDLE)_beginthreadex(NULL, 0, ThreadFun, NULL, 0, NULL);
WaitForMultipleObjects(THREAD_NUM, handle, TRUE, INFINITE);
printf("\na=%d\n",a);
system("pause");
return 0;
}
结果: