现在的位置: 首页 > 综合 > 正文

多线程编程学习笔记-interlocked

2018年01月17日 ⁄ 综合 ⁄ 共 536字 ⁄ 字号 评论关闭
#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;
}

【上篇】
【下篇】

抱歉!评论已关闭.