并发,std::atomic

梦想游戏人
目录:
现代C++

std::atomic 提供了原子操作。

有2个转有特化版本。

1…针对整形atomic<integral> 专适用于所有整数类型。 这些提供主要通过模板不可用的附加操作。 如operator++等

    其中integral包括char ,int, long long ,unsigned char等

2…针对指针atomic<Ty *> 部分专用化适用于任何指针类型。 对指针算法的方法。

 std::atomic<int> x(0);//原子对象x为int,
 

void func_1()
{
	for (int i = 0; i < 500000; i++)
	{
		x+=1;//原子操作,特化函数
		//x.fetch_add(1);//公共函数
	}
}

int main(int argc, char *argv[])
{

	auto t = std::thread(func_1);

	t.detach();

	auto t1 = std::thread(func_1);

	t1.detach();

	Sleep(1000);

	cout << x << endl;
	cout << "main thread" << endl;
	  

 

	system("pause");
	return 0;
}

参考。MSDN,https://msdn.microsoft.com/zh-cn/library/hh874894(v=vs.120).aspx

Scroll Up