C#学习之多线程开发技术(七)

线程同步之Monitor结构

-------概述
      在Framework中已经为我们提供了三个加锁的机制,分别是
           Monitor
           Lock关键字
           Mutex类 
     都是锁定数据或是锁定被调用的函数
     Mutex则多用于锁定多线程间的同步调用。简单的说,MonitorLock多用于锁定被调用端,而Mutex则多用锁定调用端。
     MonitorLock将代码段标记为临界区,其实现原理是首先锁定某一私有对象,然后执行代码段中的语句,当代码段中的语句执行完毕后,再解除锁。
--------Monitor结构
private Object obj = new Object();//定义一私有对象
//……其它代码
Monitor.Enter(obj);
//….操作临界资源
Monitor.Exit(obj);
--------monitor结构的使用方法和LOCK结构是相似的。

      首先,先定义这样的一个对象:

private Object obj = new object();

     接着,在需要加锁的地方加锁:

Monitor.Enter(obj);
            //lock(this)
{
     Console.WriteLine("{0}{1}", str, System.DateTime.Now.Millisecond.ToString());
     Thread.Sleep(50);
}
Monitor.Exit(obj);

     这里和LOCK 的使用方法是相似的。调用MonitorEnter方法 和 Exit方法即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值