为什么std :: atomic <integral>特化不提供乘法和除法赋值运算符?

jua*_*nza 10 c++ multithreading atomic atomicity c++11

STD的全部特::原子为整数类型提供算术组合赋值运算符,例如+=,-=但没有*=/=.标准说明了这一点,但据我所知,没有理由给出.熟悉原子操作图书馆部分背后原因的人是否可以对此有所了解?

Dav*_*eas 12

我认为这与硬件有关.许多平台都有原子能处理,+=但我不知道有什么提供*=.通过锁定实现这一点很简单,但是接口std::atomic会混合在相同级别的操作,这些操作在某种程度上是非常便宜的,并且操作非常昂贵.