std::atomic原子变量

发布时间:2022-07-12  栏目:C++  评论:0 Comments

使用原子操作来控制线程顺序,可以实现一个类似于互斥锁这么一个概念

每个 std::atomic 模板的实例化和全特化定义一个原子类型。若一个线程写入原子对象,同时另一线程从它读取,则行为良好定义。

 

原子操作std::atomic与互斥量的区别

1)互斥量:类模板,保护一段共享代码段,可以是一段代码,也可以是一个变量。
2)原子操作std::atomic:类模板,保护一个变量。

为何需要原子操作std::atomic
上面可以看到,为何已经有互斥量了,还要引入std::atomic呢,这是因为互斥量保护的数据范围比较大,我们期望更小范围的保护。并且当共享数据为一个变量时,原子操作std::atomic效率更高。

留下评论

You must be logged in to post a comment.

相册集

pix pix pix pix pix pix

关于自己

杨文龙,微软Principal Engineering Manager, 曾在各家公司担任影像技术资深总监、数据科学团队资深经理、ADAS算法总监、资深深度学习工程师等职位,热爱创新发明,专注于人工智能、深度学习、图像处理、机器学习、算法、自然语言处理及软件等领域,目前发明有国际专利19篇,中国专利28篇。

联系我

个人技术笔记

welonshen@gmail.com

2015 in Shanghai