<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【設計原則和建議】 lock

      lock是.net中最常用的鎖

      了解lock機制,引用類型,值類型,字符串和應用程序域的朋友可能對以下的內容都很熟悉了
       

      1.先來看看推薦的lock代碼

          class LockDemo
      {
      private static object asyncLock = new object();//使用static object作為互斥資源
      public static void Test()
      {
      lock (asyncLock)//保證該方法是線程安全的
      {
      // 程序代碼
      }
      }

      private object asyncLock2 = new object();//使用object作為互斥資源
      public void Test2()
      {
      lock (asyncLock2)//保持該方法是線程安全的
      {
      // 程序代碼
      }
      }
      }


      2.請保證被lock的對象不會為null

                  object o = null;
      lock (o)//如果o有可能為null 會拋出異常
      {
      }


      3.如果類本身是public的 絕對不要在類的內部使用lock(this)

      • 因為從外部有可能lock這個實例

      4.嚴禁lock(typeof(MyType)) ,如果myType具有公開訪問性

      5.嚴禁lock(typeof(int)) ,所有的基本類型也是一致的

      6.嚴禁lock("string"),所有想lock同一個string的代碼都慘了

      7.嚴禁lock值類型,例如lock(int)...會自動裝箱 (只能在Monitor.Enter 模擬,編輯器會阻止lock(int))

      8.必要時候雙重檢查防止代碼重復執行

              private static bool condition = true;
      public static void Test3()
      {
      if (condition)
      {
      lock (asyncLock)//雖然CLR已經提供了很多的方法,不過這個經典模式還是很常用的
      {
      if (condition)
      {
      condition = false;
      }
      }
      }
      }

      9.lock的基本實現,大家應該都很熟悉了

       object o = new object();
      Monitor.Enter(o);
      try
      {
      //代碼
      }
      finally
      {
      Monitor.Exit(o);
      }



      10.CLR中有兩種鎖可以不進內核模式,一個是自旋鎖,另外一個就是lock,這兩個速度都比較快,適合時間很短的鎖定 (如果是進內核模式的鎖 至少就30ms了)

      • 有朋友指出了lock是混合模式,驗證中...

      11.使用lock編程簡單,比讀寫鎖,信號量等使用方便

      12.因為性能和編程原因,某些時候不要使用lock

      • 簡單操作用Interlocked 類自帶的一些操作
      • 短時間鎖定,自旋鎖更快
      • 如果可以,優先使用無lock的代碼,例如.net新增的線程安全的集合類 
      • 適當的時候使用讀寫鎖取代lock (讀多寫少)
      • 長時間鎖定考慮信號量等方案 (例如異步IO操作)

      13.一部分類本身提供了一些對象用于鎖定

      • Hashtable.SyncRoot
         

      部分內容引用自MSDN,和其他第三方文章

      因為本人水平有限,如有遺漏或謬誤,還請各位高手指正

      posted on 2011-10-20 23:38  聽說讀寫  閱讀(2244)  評論(14)    收藏  舉報

      導航

      主站蜘蛛池模板: 在线观看无码av五月花| 最新精品国偷自产在线| 国产精品区一二三四久久| 久久99精品久久久久麻豆 | 色一情一乱一伦麻豆| 亚洲AV日韩精品久久久久| 怡春院久久国语视频免费| 日本免费人成视频在线观看| 亚洲国产日韩一区三区| 人妻熟女欲求不满在线| 精品国产精品国产偷麻豆| 免费无码一区无码东京热| 远安县| 亚欧洲乱码视频一二三区| 国产成人影院一区二区三区| 精品人妻中文字幕在线| 亚洲午夜福利精品无码不卡| 久久综合狠狠综合久久| 四虎影视库国产精品一区| 国产乱码精品一区二三区| 日本三级香港三级三级人妇久 | 中文字幕日韩区二区三区| 麻豆精品一区二区三区蜜桃| www夜片内射视频日韩精品成人| 视频一区二区三区四区五区| 久久99精品九九九久久婷婷| 办公室强奷漂亮少妇同事| 国产一区二区日韩在线| 黄频在线播放观看免费| 97se亚洲综合自在线| 中文字幕99国产精品| 人人做人人澡人人人爽| 精品无码黑人又粗又大又长| 国产精品七七在线播放| 久爱www人成免费网站| 久久天天躁狠狠躁夜夜网站 | 秋霞无码久久久精品| 天堂V亚洲国产V第一次| 国产精品综合一区二区三区| 一本久久a久久精品综合| 亚洲少妇一区二区三区老|