码迷,mamicode.com
首页 > 其他好文 > 详细

lock与monitor的区别

时间:2016-12-12 23:36:10      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:nal   lan   object   使用   对象   eth   同步方法   lock   task   

1、Lock 只能对引用对象加锁

     Lock锁定区间内可以对锁定值修改而不发生运行时错误,通常也会采用此种修改方式。这种方式又有点类同于使用Monitor.Wait取得资源,并对这个资源进行操作。

    用法: 

         private static readonly object locktask= new object();

         pulick void lock()

         {

 

            lock(locktask)

 

             {

 

             dosomething();

 

              }

 

          }

         

2、Monitor 可以对值类型加锁,实际上是在调用Monitor.Enter时对值类型装箱了

 

      Monitor在锁定区域内不能对被锁对象的值进行修改,运行时抱错“从不同步的代码块中调用了对象同步方法”

   

        private static readonly object locktask= new object();

 

        

pulick void lock()

         {

               try

              {

            Monitor.Enter(locktask)

             dosomething();

             }

           catch

           {}

          finnally

           {

           Monitor.Exit(Tasklock);

           }

 

              }

 

          }

 

lock与monitor的区别

标签:nal   lan   object   使用   对象   eth   同步方法   lock   task   

原文地址:http://www.cnblogs.com/MissQing/p/6165845.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!