有没有意义用限定符制作原子对象 - volatile?
使用:
volatile std::atomic<int> i(1);
Run Code Online (Sandbox Code Playgroud)
代替:
std::atomic<int> i(1);
Run Code Online (Sandbox Code Playgroud)
不,绝对没有任何意义std::atomic,因为在内部std::atomic,代码将处理变量可能随时改变的可能性,并且其他处理器可能需要被"告知"它已经改变("告诉"其他处理器不被覆盖" volatile.
你真正需要的唯一时间volatile是你有一个指向你的代码所控制的硬件的指针 - 例如在计时器中读取计数器,或者现在哪个帧缓冲器处于活动状态,或者告诉网卡在哪里读取下一个要发送的数据包的数据.那些东西是不稳定的,因为编译器无法知道这些东西的价值随时都会发生变化.
| 归档时间: |
|
| 查看次数: |
341 次 |
| 最近记录: |