C# InterLocked类 同步 i++

来源:互联网 发布:阿里算法工程师p6待遇 编辑:程序博客网 时间:2024/06/07 01:46
i++不是线程安全的。它的操作包括从内存中获取一个值,给该值增加1,再将它储存回内存。这些操作都有可能被线程高度器打断。InterLocked类提供了以线程安全方式增减、交换和读取值的方法。
但与其它的技术相比,2使用InterLocked类会快很多。但是它只能用于简单的同步问题。
                lock (this)                {                    if (someState == null)                    {                        someState = newState;                    }                }
它等效于
Interlocked.CompareExchange<someState>(ref someState, newState, null);
自增操作
 public int State                {                    get                    {                        Interlocked.Increment(ref someState);                    }                }
0 0
原创粉丝点击