Volatile.Read / Volatile.Write是否为“双”primefaces?

MSDN声明

long,ulong,double和decimal,以及用户定义的类型,不保证是primefaces的5.5变量引用的primefaces

Volatile.Write Method (Double%, Double)可以作为primefaces操作? 如果是这样如何保证?

Volatile.Write(ref mydouble, value);是安全的Volatile.Write(ref mydouble, value); 在一个线程和Volatile.Read(ref mydouble)在另一个mydoubledouble类型?

这是一般性问题。 另一个问题 – 在这种特殊情况下我应该怎么做:

  • 2个处理器Xeon x64服​​务器
  • Windows + MS .NET 4.5
  • 从不同的线程读/写double
  • 最小的延迟(需要最小因为我正在编写HFT软件)

除非你真的需要性能,否则你可能需要InterlockedInterlocked.ExchangeInterlocked.Read

更新:不,易失性不是primefaces的,并且在SMP(> 1处理器)系统中假设是不安全的。 它在单处理器机器上是安全的。

如果你真的非常关心延迟,那么你需要停止从不同的线程写入相同的位置。 你能扩展你正在解决的问题吗?