第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這段代碼能保證多線程安全嗎?

這段代碼能保證多線程安全嗎?

哆啦的時光機 2018-12-06 23:21:00
 public class DoubleCacheQueue<T>    {         public DoubleCacheQueue()        { }        public T Dequeue()        {            T t = default(T);                           if (readQueue.Count > 0)                    t= readQueue.Dequeue();                else                {                    writeQueue = Interlocked.Exchange<Queue<T>>(ref readQueue, writeQueue);                                   }                       return t;        }        public void Enqueue(T item)        {                writeQueue.Enqueue(item);        }         public int Count        {            get { return readQueue.Count; }        }        //讀緩沖        private Queue<T> readQueue = new Queue<T>();        //寫緩沖        private Queue<T> writeQueue = new Queue<T>();     } 問下大家,這段代碼能保證多線程安全嗎?
查看完整描述

5 回答

?
慕妹3146593

TA貢獻1820條經(jīng)驗 獲得超9個贊

No。

隊列只剩一項數(shù)據(jù)時,并發(fā)去Dequeue可能會出異常。Queue<T>考慮常規(guī)則應用的效率,應該不會提供并發(fā)檢查。

查看完整回答
反對 回復 2019-01-21
?
繁花不似錦

TA貢獻1851條經(jīng)驗 獲得超4個贊

個人認為應該不是線程安全的

Dequeue和Enqueue方法都是直接操作Queue,而對Queue的線程安全MSDN上說法如下:

此類型的公共靜態(tài)成員是線程安全的。但不能保證任何實例成員是線程安全的。

所以個人認為應該不是線程安全的

查看完整回答
反對 回復 2019-01-21
?
海綿寶寶撒

TA貢獻1809條經(jīng)驗 獲得超8個贊

內(nèi)部是倆個q,不是一個,每個線程各操作一個

查看完整回答
反對 回復 2019-01-21
?
交互式愛情

TA貢獻1712條經(jīng)驗 獲得超3個贊

非線程安全,不能確保在多線程情況下的讀寫。

但是只是一個線程讀,一個線程寫的情況下可以。

根據(jù)業(yè)務應用來設計自己的數(shù)據(jù)結(jié)構(gòu)操作,不一定非要完全線程安全。

在實施服務器連接管理器時,頻繁的上線、下線對于服務器的連接管理器hashtable加鎖勢必會增加服務器的開銷,使得效率低下

查看完整回答
反對 回復 2019-01-21
  • 5 回答
  • 0 關注
  • 438 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號