<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        樂觀鎖和悲觀鎖

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 12:56:15
        文檔

        樂觀鎖和悲觀鎖

        樂觀鎖和悲觀鎖:最近曉靖給 skynet 提了一個 pr 。 提之前我們討論了好久,據(jù)說是因為查另外一個問題時改寫了 skynet 的消息調(diào)度部分發(fā)現(xiàn)在某些情況下可以提高 CPU 的使用率。 之前 skynet 的消息調(diào)度采用的是基于 cas 的無鎖結(jié)構(gòu)。但本質(zhì)上,并發(fā)隊列這種數(shù)據(jù)結(jié)構(gòu),無論是
        推薦度:
        導(dǎo)讀樂觀鎖和悲觀鎖:最近曉靖給 skynet 提了一個 pr 。 提之前我們討論了好久,據(jù)說是因為查另外一個問題時改寫了 skynet 的消息調(diào)度部分發(fā)現(xiàn)在某些情況下可以提高 CPU 的使用率。 之前 skynet 的消息調(diào)度采用的是基于 cas 的無鎖結(jié)構(gòu)。但本質(zhì)上,并發(fā)隊列這種數(shù)據(jù)結(jié)構(gòu),無論是

        最近曉靖給 skynet 提了一個 pr 。 提之前我們討論了好久,據(jù)說是因為查另外一個問題時改寫了 skynet 的消息調(diào)度部分發(fā)現(xiàn)在某些情況下可以提高 CPU 的使用率。 之前 skynet 的消息調(diào)度采用的是基于 cas 的無鎖結(jié)構(gòu)。但本質(zhì)上,并發(fā)隊列這種數(shù)據(jù)結(jié)構(gòu),無論是

        最近曉靖給 skynet 提了一個 pr 。

        提之前我們討論了好久,據(jù)說是因為查另外一個問題時改寫了 skynet 的消息調(diào)度部分發(fā)現(xiàn)在某些情況下可以提高 CPU 的使用率。

        之前 skynet 的消息調(diào)度采用的是基于 cas 的無鎖結(jié)構(gòu)。但本質(zhì)上,并發(fā)隊列這種數(shù)據(jù)結(jié)構(gòu),無論是采用 spin-lock 還是 cas 無鎖結(jié)構(gòu),為了保證時序,進(jìn)隊列或出隊列的部分都必須是依次進(jìn)行的,也就是說,多核心無助于提高隊列的性能。

        使用無鎖結(jié)構(gòu),無非是對發(fā)生沖突保有樂觀態(tài)度,覺得大多數(shù)情況下沖突不會發(fā)生,一旦發(fā)生就采取重來一次的策略。

        而使用 spin lock ,則是對沖突采取悲觀策略,認(rèn)為沖突經(jīng)常發(fā)生,所以在操作共享字段時,鎖住資源獨享操作。

        最終,都必須等前一件事情做完,才能接著做下一件事。

        無鎖結(jié)構(gòu)的程序邏輯往往顯得復(fù)雜,那么它的好處是什么呢?

        無鎖結(jié)構(gòu)在樂觀情況下,可以讓處理過程盡量并行,只在可能發(fā)生沖突的那一刻才用系統(tǒng)的原子指令鎖住一個字長的內(nèi)存寫入,然后立即放開。加鎖和解鎖是原子的,這樣就可以回避死鎖的問題。同時也不會因為 spin lock 鎖住的指令過多(如果線程數(shù)多于核心數(shù),就有可能在鎖住的過程中發(fā)生線程掛起),而導(dǎo)致其它線程等待時間過長。

        在 skynet 的核心消息隊列調(diào)度模塊中,無鎖結(jié)構(gòu)能獲得的好處其實非常有限。為了簡化代碼,我們甚至不需要單獨去鎖隊列的兩端。因為在 skynet 的消息隊列分兩級。在運行過程中,如果此級隊列有消息時,它根本不會進(jìn)入全局主隊列(用鎖保證次序的那個隊列)。

        由于不再使用無鎖隊列,數(shù)據(jù)結(jié)構(gòu)也可以大大簡化。使用一個簡單的單向鏈表就可以管理這個隊列。之前為了解決隊列長度問題,已經(jīng)把次級隊列設(shè)計成一個侵入式鏈表,這次要做的只是把那個數(shù)組部分去掉就可以了。

        修改過后,一個明顯的好處是突發(fā)的大量服務(wù)啟動(往往是瞬間大量連接涌入造成的 agent 啟動需求)變快了。 這解答了之前的一個疑問 。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        樂觀鎖和悲觀鎖

        樂觀鎖和悲觀鎖:最近曉靖給 skynet 提了一個 pr 。 提之前我們討論了好久,據(jù)說是因為查另外一個問題時改寫了 skynet 的消息調(diào)度部分發(fā)現(xiàn)在某些情況下可以提高 CPU 的使用率。 之前 skynet 的消息調(diào)度采用的是基于 cas 的無鎖結(jié)構(gòu)。但本質(zhì)上,并發(fā)隊列這種數(shù)據(jù)結(jié)構(gòu),無論是
        推薦度:
        標(biāo)簽: 一個 之前 最近
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲AV日韩综合一区尤物| 亚洲国产精品一区| 亚洲成AV人片在WWW| 成人性生交大片免费看午夜a| 亚洲欧洲另类春色校园小说| 一级毛片**不卡免费播| 亚洲午夜久久影院| 欧洲精品99毛片免费高清观看| 亚洲国产精品无码成人片久久 | 亚洲日韩中文在线精品第一| 亚洲欧美黑人猛交群| 男女啪啪永久免费观看网站| 亚洲AV无码专区亚洲AV桃| 国产男女猛烈无遮挡免费网站| 亚洲丁香婷婷综合久久| 四虎影视永久免费视频观看| 免费看一级毛片在线观看精品视频| 国产国产人免费人成免费视频| 国产亚洲蜜芽精品久久| 亚洲国产精品第一区二区三区| 国产精品小视频免费无限app| 日本亚洲国产一区二区三区| 日本免费A级毛一片| 久久精品蜜芽亚洲国产AV| 日本免费网址大全在线观看| 亚洲欧美成人综合久久久| 免费看国产一级特黄aa大片| 成在线人视频免费视频| 亚洲国产精品不卡在线电影| 国产日本一线在线观看免费| 国产午夜亚洲精品不卡电影| 亚洲伊人成无码综合网| 最近免费中文字幕mv电影| 亚洲精品伊人久久久久| 免费一级大黄特色大片| a毛片免费全部播放完整成| 亚洲一区二区三区在线观看蜜桃| 日韩免费电影在线观看| 丁香花在线观看免费观看图片| 亚洲国产夜色在线观看| 亚洲成人国产精品|