1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        hoho,這個(gè)線程模型有點(diǎn)意思

        共 712字,需瀏覽 2分鐘

         ·

        2021-04-23 13:59

        Leader-Follower是一種經(jīng)典的多線程模型。


        上圖就是L/F多線程模型的狀態(tài)變遷圖,這個(gè)線程模型有6個(gè)關(guān)鍵點(diǎn)。

        關(guān)鍵點(diǎn)一:線程三種狀態(tài)。
        (1)領(lǐng)導(dǎo)中,leading;
        (2)處理中,processing;
        (3)追隨中,following;

        關(guān)鍵點(diǎn)二:N個(gè)線程狀態(tài)各異。
        (1)只有1個(gè)leading線程(等待任務(wù));
        (2)有x個(gè)processing線程(處理);
        (3)有N-1-x個(gè)following線程(空閑);

        關(guān)鍵點(diǎn)三:有一把鎖,誰搶到就是leading。

        關(guān)鍵點(diǎn)四:事件/任務(wù)來到時(shí),leading線程會(huì)對(duì)其進(jìn)行處理,從而轉(zhuǎn)化為processing狀態(tài),處理完成之后,又轉(zhuǎn)變?yōu)閒ollowing。

        關(guān)鍵點(diǎn)五:丟失leading后,following會(huì)嘗試搶鎖,搶到則變?yōu)閘eading,否則保持following。

        關(guān)鍵點(diǎn)六:following不干事,就是搶鎖,力圖成為leading。

        這個(gè)線程模型有什么優(yōu)點(diǎn)?
        不需要消息隊(duì)列。

        這個(gè)線程模型適用什么場(chǎng)景?
        線程能夠很快的完成工作任務(wù)。

        有人說“并發(fā)量大時(shí),L/F的鎖容易成為系統(tǒng)瓶頸,需要引入一個(gè)消息隊(duì)列解決?!?/span>此觀點(diǎn)不對(duì),一個(gè)消息隊(duì)列,其仍是臨界資源,仍需要一把鎖來保證互斥,只是鎖競(jìng)爭(zhēng)從leading移到了消息隊(duì)列上,此時(shí)消息隊(duì)列僅僅只能起到消息緩沖的作用。

        根本解決方案是降低鎖粒度(例如多個(gè)隊(duì)列)。

        F-L線程模型,你有使用過么?
        瀏覽 24
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            狠狠色噜噜狠狠狠狠97 | 天天干视频| 人人上人人摸 | cao到她乖1v1高h黑暗森林 | 一级黄色片AV片 | 色综合丁香 | 男生和女生操的视频 | 国产精品久久久久久久久久影院 | 黄色成人在线观看视频 | 国产伦精品一二三区视频妓女 |