#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; }