91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么理解C#中Queue的線程安全問題

發布時間:2021-11-11 09:24:08 來源:億速云 閱讀:414 作者:柒染 欄目:游戲開發

怎么理解C#中Queue的線程安全問題,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

通過集合枚舉在本質上不是一個線程安全的過程。甚至在對集合進行同步處理時,其他線程仍可以修改該集合,這會導致枚舉數引發異常。若要在枚舉過程中保證線程安全,可以在整個枚舉過程中鎖定集合,或者捕捉由于其他線程進行的更改而引發的異常。

下列示例說明如何同步 Queue、如何確定 Queue 是否同步以及如何使用同步的 Queue。Unity3D教程手冊

using System;
                                                           
  using System.Collections;
                                                           
  public class SamplesQueue  {
                                                           
  public static void Main()  {
                                                           
  // Creates and initializes a new Queue.
                                                           
  Queue myQ = new Queue();
                                                           
  myQ.Enqueue( “The” );
                                                           
  myQ.Enqueue( “quick” );
                                                           
  myQ.Enqueue( “brown” );
                                                           
  myQ.Enqueue( “fox” );
                                                           
  // Creates a synchronized wrapper around the Queue.
                                                           
  Queue mySyncdQ = Queue.Synchronized( myQ );
                                                           
  // Displays the sychronization status of both Queues.
                                                           
  Console.WriteLine( “myQ is {0}.”, myQ.IsSynchronized ? “synchronized” : “not synchronized” );
                                                           
  Console.WriteLine( “mySyncdQ is {0}.”, mySyncdQ.IsSynchronized ? “synchronized” : “not synchronized” );
                                                           
  }
                                                           
  }

通過對比運行結果,可以明顯的看出通過Queue.Synchronized方法包裝的Queue被同步,沒有包裝的則沒有被同步。可以在實例化處這樣聲明,

 // Creates a synchronized wrapper around the Queue.
                                                   
  Queue mySyncdQ = Queue.Synchronized( new Queue());

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洛扎县| 辽阳县| 宽甸| 柘荣县| 镇康县| 屯留县| 视频| 揭西县| 仁化县| 邯郸县| 阿合奇县| 中牟县| 金溪县| 五峰| 通化市| 镇宁| 辽宁省| 邹平县| 延长县| 五台县| 临澧县| 喀喇| 萨迦县| 西盟| 镇康县| 大渡口区| 邓州市| 临邑县| 闽侯县| 青州市| 胶南市| 西丰县| 南城县| 东兰县| 射阳县| 新河县| 蓬安县| 睢宁县| 永定县| 巴林左旗| 安塞县|