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

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

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

      輕量級 Lock Free 線程安全的 Queue<T> 的C#2.0實現

      最近在維護一些C# 2.0的代碼....發現各種線程不安全的實現

      2.0里面又沒有ConcurrentCollection的相關類

      不得已,自己寫了一個,

      本來想用傳統的lock實現的, 不過考慮到其中的操作非常輕量級...最終還是用了Lock Free

      使用原子操作 InterLocked 替換掉常用的lock關鍵字

          public sealed class SafedQueue<T>
      {
      #region private Fields
      private int isTaked = 0;
      private Queue<T> queue = new Queue<T>();
      private int MaxCount = 1000 * 1000;
      #endregion

      public void Enqueue(T t)
      {
      try
      {
      while (Interlocked.Exchange(ref isTaked, 1) != 0)
      {
      }
      this.queue.Enqueue(t);
      }
      finally
      {
      Thread.VolatileWrite(ref isTaked, 0);
      }
      }

      public T Dequeue()
      {
      try
      {
      while (Interlocked.Exchange(ref isTaked, 1) != 0)
      {
      }
      T t = this.queue.Dequeue();
      return t;
      }
      finally
      {
      Thread.VolatileWrite(ref isTaked, 0);
      }
      }

      public bool TryEnqueue(T t)
      {
      try
      {
      for (int i = 0; i < MaxCount; i++)
      {
      if (Interlocked.Exchange(ref isTaked, 1) == 0)
      {
      this.queue.Enqueue(t);
      return true;
      }
      }
      return false;
      }
      finally
      {
      Thread.VolatileWrite(ref isTaked, 0);
      }
      }

      public bool TryDequeue(out T t)
      {
      try
      {
      for (int i = 0; i < MaxCount; i++)
      {
      if (Interlocked.Exchange(ref isTaked, 1) == 0)
      {
      t = this.queue.Dequeue();
      return true;
      }
      }
      t = default(T);
      return false;
      }
      finally
      {
      Thread.VolatileWrite(ref isTaked, 0);
      }
      }
      }

      Try起頭的方法都有嘗試次數限制,超過限制以后就退出并返回false

      posted on 2012-03-18 13:37  聽說讀寫  閱讀(4000)  評論(2)    收藏  舉報

      導航

      主站蜘蛛池模板: 宝贝腿开大点我添添公口述视频| 亚洲AVAV天堂AV在线网阿V| 亚洲欧美不卡高清在线| 丝袜美腿视频一区二区三区| 国产国语毛片在线看国产| 日韩成人精品一区二区三区| 天堂V亚洲国产V第一次| 国模肉肉视频一区二区三区 | 伊人久久大香线焦av综合影院| 亚洲欧美人成人综合在线播放 | 麻豆亚州无矿码专区视频| 久久精品国产福利一区二区| 三台县| 日韩av一区二区不卡在线| 国产AV影片麻豆精品传媒| 国偷自产一区二区免费视频| 亚洲精品综合一区二区在线| 亚洲欧洲日韩国内精品| 欧美情侣性视频| 国产精品日韩av一区二区| 免费无码黄网站在线观看| 欧洲人妻丰满av无码久久不卡| 精品亚洲国产成人av在线| 99精品热在线在线观看视 | 亚洲首页一区任你躁xxxxx| 青春草公开在线视频日韩| 蜜臀av人妻国产精品建身房| 久久精品视频一二三四区| 国产精品成人中文字幕| 鄄城县| mm1313亚洲国产精品| 东方av四虎在线观看| 极品少妇无套内射视频| 99九九热久久只有精品| 乱码中文字幕| 日本在线 | 中文| 东京热人妻无码一区二区av| 疯狂的欧美乱大交| 成在线人视频免费视频| 国产亚洲精品成人aa片新蒲金| 国产成AV人片久青草影院|