volatile变量并不意味着记忆障碍,不具备exchange或compare_exchange_*的操作std::atomic.它们确实避免了编译器在机器代码级别上将负载提升到多个负载(反之亦然,并且类似于商店),但就是这样.
您可能对这些文章感兴趣:
如果没有std::atomic,可能需要使用boost :: atomic,或使用您正在使用的任何编译器提供的低级屏障和原子操作原语.
| 归档时间: |
|
| 查看次数: |
6041 次 |
| 最近记录: |