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)
在另一个mydouble
有double
类型?
这是一般性问题。 另一个问题 – 在这种特殊情况下我应该怎么做:
- 2个处理器Xeon x64服务器
- Windows + MS .NET 4.5
- 从不同的线程读/写double
- 最小的延迟(需要最小因为我正在编写HFT软件)
除非你真的需要性能,否则你可能需要Interlocked
, Interlocked.Exchange
或Interlocked.Read
更新:不,易失性不是primefaces的,并且在SMP(> 1处理器)系统中假设是不安全的。 它在单处理器机器上是安全的。
如果你真的非常关心延迟,那么你需要停止从不同的线程写入相同的位置。 你能扩展你正在解决的问题吗?