C#.NET中的同步策略

本文详细介绍了C#.NET中实现线程同步的三种策略:同步上下文、同步代码区和手控同步。同步上下文通过SynchronizationAttribute实现对象自动同步;同步代码区涉及Monitor/lock/ReaderWriterLock等类;手控同步包括ManualResetEvent、AutoResetEvent、Mutex、Interlocked和ThreadStaticAttribute等低级线程API,用于精细控制线程同步。
摘要由CSDN通过智能技术生成

本文主要描述的是线程同步实现的策略,线程同步类的相关内容:C#.NET中的线程同步类(一)

.NET的公共语言基础结构(CLI)提供了3种策略去同步访问实例、静态方法和实例字段。

同步上下文

上下文是一组属性或使用规则,这组属性使用规则对执行时相关的对象集合是通用的,在对象激活期间创建。新对象被放置到现有上下文或新的上下文中,后者是通过元数据类型中包含的属性创建。使用提供用法规则的ContextAttribute标记上下文绑定类,可添加的上下文属性包括有关同步和事务的策略。关于上下文的示例:C#.NET中的上下文

.NET中同步上下文的策略将使用SynchronizationAttribute类对ContextBoundObject对象进行简单的自动同步。.NET在每种方法调用前锁定对象,方法返回后释放对象。SynchronizatonAttribute类包含了实例变量、实例方法和应用这个属性的类的实例字段,但它不处理静态字段和方法的同步,如果必须同步特定的代码块,它也不起作用。

使用SyncronizationAttribute将类变成具有线程安全性的示例代码如下:

//public enum SynchronizationOption Member of System.EnterpriseServices
//[Synchronization(SynchronizationOption.Required)] 无参数构造函数默认为SynchronizationOption.Req
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值