我正在处理一些需要支持 32 位和 64 位代码库的线程库代码,因此在有争议的路径中存在各种互锁调用,专门用于处理 Int64 的非原子加载和存储。
我想知道,在 64 位平台上执行时,在 Int64 上运行时是否有任何特殊优化?具体来说,Interlocked.Read(...) 调用是否转换为等效的普通赋值?结果被丢弃的 Interlocked.Exchange(...) 调用是否也变成了普通赋值?
我正在处理一些需要支持 32 位和 64 位代码库的线程库代码,因此在有争议的路径中存在各种互锁调用,专门用于处理 Int64 的非原子加载和存储。
我想知道,在 64 位平台上执行时,在 Int64 上运行时是否有任何特殊优化?具体来说,Interlocked.Read(...) 调用是否转换为等效的普通赋值?结果被丢弃的 Interlocked.Exchange(...) 调用是否也变成了普通赋值?