c,c 11,std ::原子成员函数

前端之家收集整理的这篇文章主要介绍了c,c 11,std ::原子成员函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图使用std :: atomic库.

>专业和非专业原子有什么区别?
会员功能
>以下功能有什么区别(如果有)?
> operator =将一个值存储到一个原子对象(公共成员函数)v.s.存储(C 11)使用非原子参数(公共成员函数)原子替换原子对象的值,
>运算符T()从原子对象(公共成员函数)v.s.负载(C 11)原子获取原子对象(public member function)的值.
> operator = v.s. fetch_add
> operator- = v.s. fetch_sub
> operator& = v.s. fetch_and
> operator | = vs. fetch_or
> operator ^ = v.s. fetch_xor
>以原子v.s.声明变量的缺点是什么?一个
非原子变量.例如,什么是缺点
的std ::原子< INT> x v.s. int x?换句话说,原子变量的开销是多少?
>哪一个有更多的开销?原子变量v.s.一般的
变量由互斥体保护?

这是我的问候的参考. http://en.cppreference.com/w/cpp/atomic/atomic

解决方法

不是专家,但我会试试:

>专门化(对于内置类型,如int),包含其他操作,如fetch_add.非专门的表单(用户定义的类型)不包含这些.> operator =返回其参数,store不存在.此外,非运算符允许您指定内存顺序.该标准表示operator =是根据商店定义的.>与上述相同,虽然返回负载的值.>同上>同上>同上>同上>同上>同上他们做不同的事情.以使用std :: atomic_int的方式使用int是未定义的行为.>你可以假定开销是int< = std :: atomic< = int和std :: mutex其中< =意味着'少开销'.所以这可能比使用互斥锁(特别是内置类型)更好,但比int更糟.

猜你在找的C&C++相关文章