uint64_t在32位机器上写入

时间:2012-03-12 12:26:52

标签: c++ architecture synchronization multiprocessing

当2进程通过32位solaris i386 Arch上的共享内存进行通信时

  1. 是否保证对于uint64_t数据类型的值,(值< 2 ^ 32 )写入单个内存位置并且(值> 2 ^ 32 )写在2个内存位置?
  2. 32位内存读取是否是原子的。?

1 个答案:

答案 0 :(得分:3)

64位值总是写入64位内存! 1 写入几乎肯定不是原子的(除非架构明确保证这一点)。

<小时/> <子> 1。当然,除非它根本没有写入记忆(即没有register spill时。但那不是重点。