本文共 290 字,大约阅读时间需要 1 分钟。
在64位操作系统上读写64位数据是原子操作。 在32位操作系统上对64位变量读写的非原子性。简单的说,在32位操作系统上,对64位的数据的读写是分两步的,一步取前32位数据,一步取后32位数据,通过这两步操作来实现对64位数据的读写。但是这样的非原子性操作会有问题。因为,假如在读或写一个64位的高32位的数据的时候,另外一个线程写了该64位数据的低32位,这样就会使得获取的64位数据是失效数据。如果想要避免这种情况,就用关键字volatile声明64位的变量,或者把对他们的读写操作锁起来。 转载于:https://my.oschina.net/czg/blog/142715