原子内在存储没有什么特别之处.它的特别之处在于:
发出访问数据的指令,以确保不同的线程以正确的顺序查看内存更新,以及
不允许编译器(实际上是处理器)重新排序指令,以便在存储操作之前发生释放操作,而不是作者的意图(反之亦然).
百万std::atomic<int>s不会消耗比代表它们所需的内存更多的资源.您的代码在访问它们时会发出大量的内存栅栏或获取/释放操作,但如果您也使用了互斥锁,那么因为互斥锁保护的代码块与观察到的更新顺序相同线程.
| 归档时间: |
|
| 查看次数: |
178 次 |
| 最近记录: |