#include <stdio.h>
#include <process.h>
#include <windows.h>
volatile long g_nLoginCount;
unsigned int __stdcall Fun(void *pPM);
const int THREAD_NUM = 50;
DWORD WINAPI ThreadFun(void *pPM)
{
Sleep(100);
//g_nLoginCount++;
InterlockedIncrement((LPLONG)&g_nLoginCount);
Sleep(50);
return 0;
}
int main(void)
{
int i, n = 120;
while(n--)
{
g_nLoginCount = 0;
HANDLE handle[THREAD_NUM];
for(i = 0; i < THREAD_NUM; ++i)
handle[i] = CreateThread(NULL, 0, ThreadFun, NULL, 0, NULL);
WaitForMultipleObjects(THREAD_NUM, handle, TRUE, INFINITE);
printf("有%d个用户登录后记录结果是%d\n", THREAD_NUM, g_nLoginCount);
}
return 0;
}
多线程编程学习笔记-interlocked
最新推荐文章于 2020-11-24 22:41:41 发布