在64位x86机器中是读/写双值原子

时间:2018-04-24 16:03:07

标签: c++ c x86 atomicity

在使用c / c ++编程的64位机器中假设读取/写入double值是原子的是否安全?

我有两个共享内存的进程。进程1在c中,它是double值的编写者,c ++中的进程2是该值的读者。

2 个答案:

答案 0 :(得分:3)

不,如果您希望原子操作使用std::atomic<double>

答案 1 :(得分:0)

C11引入了原子类型:C11 Atomics

运气好的话,C ++也采用了这些便携性。如果没有,您可能必须依赖编译器扩展:GCC Atomic Builtins

或者只是使用互斥锁锁定。