亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

怎么理解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

岫岩| 南木林县| 泽库县| 凤台县| 宁陵县| 长泰县| 虹口区| 杭锦旗| 马龙县| 衡东县| 山阴县| 铜川市| 嘉定区| 教育| 罗定市| 抚州市| 宜州市| 襄城县| 达拉特旗| 承德县| 南投市| 昭觉县| 罗源县| 阿拉尔市| 庐江县| 临城县| 广东省| 桐庐县| 灌阳县| 浪卡子县| 福海县| 星子县| 会同县| 彩票| 巴林左旗| 安塞县| 石河子市| 武川县| 黄山市| 河津市| 徐水县|