您的位置:首页 > 其它

多线程原子操作的简单示例

2016-01-11 01:20 330 查看
多线程的原子操作快于互斥量和临界区,用一个简单的示例演示其用法

#include <iostream>
#include <windows.h>

using namespace std;

int num = 0 ;
DWORD WINAPI run(void *p)
{
for (int i = 0 ; i < 100000 ; i++)
{
InterlockedIncrement((unsigned int*)&num) ;//自增
}
return 0 ;
}
void main()
{
HANDLE hd[50] ;
for (int i = 0 ; i < 50 ; i++)
{
hd[i] = CreateThread(NULL , 0 , run , NULL , 0 , NULL) ;

}
WaitForMultipleObjects(50 , hd , true , INFINITE) ;
cout<<num<<endl ;
system("pause") ;
}


运行结果:5000000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: