C#的内存模型和并发情况下受到的影响

C# - The C# Memory Model in Theory and Practice讲了C#的内存模型和在并发下的影响。
内存操作重排:当一个线程读一段内存,如果这段内存同时被另外一个线程写,那么读的线程有可能拿到一个不新鲜的值。
用volatile关键字可以限制内存重拍。
原子读写操作:reference,bool,char,byte,sbyte,short,ushort,unit,int,float。
非重排优化,例如读一个field,然后存在一个variable中,后面被多次读到,有可能被优化成没有variable,直接多次从field中读取。

线程交换的模式:

通过Threading API
通过type初始化(static field)
通过volatile的filed
lazy initialize
Interlocked
使用Concurrency Primitives





转载于:https://www.cnblogs.com/fresky/archive/2012/12/26/2834536.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值