C#规范指出,对于32位及以下的类型(以及引用类型),读写操作是原子性的。因此,如果我的类中有一个Int32字段,我知道多个线程可以读写它,并且它们的操作是原子性的,因此该值始终是一致的(虽然缓存问题可能是一个潜在的问题,但这不是本问题的重点)。
那么,在64位系统上是否也是如此呢?如果我为64位编译我的应用程序,这是否意味着Int64仍然被认为是非原子性的?或者现在我可以将Int64视为具有原子性读/写,因为它是针对64位系统编译和运行的?
那么,在64位系统上是否也是如此呢?如果我为64位编译我的应用程序,这是否意味着Int64仍然被认为是非原子性的?或者现在我可以将Int64视为具有原子性读/写,因为它是针对64位系统编译和运行的?
Interlocked
- 但这是一个非常好的问题。 - Marc Gravell