• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            tbwshc

            tbw

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              95 Posts :: 8 Stories :: 3 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(4)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            線程池模式一般分為兩種:L/F領導者與跟隨者模式、HS/HA半同步/半異步模式。
            HS/HA 半同步/ 半異步模式 :分為三層,同步層、隊列層、異步層,又稱為生產者消費者模式,主線程處理I/O事件并解析然后再往隊列丟數據,然后消費者讀出數據進行應用邏輯處理;
            優點:簡化編程將低層的異步I/O和高層同步應用服務分離,且沒有降低低層服務性能。集中層間通信。
            缺點:需要線程間傳輸數據,因此而帶來的動態內存分配,數據拷貝,語境切換帶來開銷。高層服務不可能從底層異步服務效率中獲益。
            L/F 領導者跟隨者模式 :在LF線程池中,線程可處在3種線程狀態之一: leader、follower或processor。處于leader狀態的線程負責監聽tb網絡端口,當有消息到達時,該線程負責消息分離,并從處于 follower狀態中的線程中按照某種機制如FIFO或基于優先級等選出一個來當新的leader,然后將自己設置為processor狀態去分配和處 理該事件。處理完畢后線程將自身的狀態設置為follower狀態去等待重新成為leader。在整個線程池中同一時刻只有一個線程可以處于leader 狀態,這保證了同一事件不會被多個線程重復處理。
            缺點:實現復雜性和缺乏靈活性;
            優點:增強了CPU高速緩存相似性,消除了動態內存分配和線程間的數據交換。
            兩種模式性能分析:
            L/F模式處理一個消息的時間為多路分離、分配、處理的時間,加上線程管理時間,LF中多個線程共享一個事件源,所以,需要協調它們間的行為,即 有同步開銷,L/F同步開銷僅為申請/釋放鎖的開銷,在LF處理請求過程中并不需要線程上下文切換,但是在線程由follower成為leader時需要 進行線程上下文切換,所以當兩個請求同時到達時,這種上下文切換會影響第二個請求的處理時間,也會帶來一定的上下文開銷。
            T(L/F)=T(多路分離)+T(分配)+T(處理)+T(同步)+T(上下文)
            HS/HA模式監聽線程和工作線程間通過一個消息隊列來交換數據。這會帶來數據傳遞開銷,。同時,監聽線程和工作線程都需要去訪問消息隊列,造成 了資源的競爭,需要額外的同步機制來協調他們的行為,包括監聽線程獲取和釋放資源鎖,對應的工作線程獲取和釋放資源鎖,以及監聽線程在將一個請求放入隊列 后通知工作線程帶來的開銷,我們稱此為同步開銷,HS/HA模式的同步開銷大于L/F的同步開銷,。一個請求由監聽線程負責放入消息隊列,但是卻由工作線 程來處理,所以,每個請求都會造成一次線程上下文切
            換,由此帶來的開銷我們稱為上下文開銷。
                   T (H/H)=T(多路分離)+T(分配)+T(處理)+T(同步)+T(數據傳遞)+T(上下文)
            從上面分析可以看出沒有并發情況下L/F模式線程池模式性能優于HS/HA模式。
            并發性能分析:
            T(多路分離)、T(分配):LF和HH中把每一個消息的到來當作一個事件來處理。tbw事件分配所做的工作是在一個事件處理器注冊表中為一個事件查找 事件處理器。這一步驟花費的時間隨著當前注冊的事件處理器的個數變化。當線程池接受用戶連接請求后會為每一個連接注冊一個事件處理器,所有通過該連接發來 的請求都將由同一個事件處理器來處理。而事件處理器表采用一個平衡二叉樹來實現。因此,事件分配的時間可以認為是隨著并發用戶數的增大而增大;
            T(處理)處理消息和管理線程所需的時間都不受并發用戶數的影響。
            T(線程管理),多線程帶來的線程管理開銷只會隨著線程池中線程數而變化,相對固定。
            LF和HH的吞吐量會隨著并發用戶數的增加而增加。當并發用戶數達到一定數量時,CPU成為系統瓶頸,此后增大并發用戶數不僅不能增加并發處理的請求個數,反而會加大多路分離和分配的時間,從而使得系統吞吐量下降。
                   最佳性能時線程線:
            隨著線程數的增多吞吐量不斷增大,當達到最大值后有一個短暫的保持階段,此后繼續增大線程數反而會使得吞吐量減小。而且當請求類型為計算密集型時線程數對
            HH 的吞吐量的影響并不是很明顯。原因是HH線程池在增加線程數時線程管理開銷也有較大幅度的增加。因此,通過增大線程數來改善系統性能對HH來說并不是一種有效的方法。

            posted on 2013-06-18 16:42 tbwshc 閱讀(2472) 評論(0)  編輯 收藏 引用
            久久久久亚洲精品无码网址| 久久综合狠狠综合久久综合88| 国产福利电影一区二区三区久久久久成人精品综合 | 99久久夜色精品国产网站| 99精品久久精品一区二区| 精品久久久久久综合日本| 久久亚洲中文字幕精品一区四| 无码国内精品久久综合88| 久久精品午夜一区二区福利| 国产ww久久久久久久久久| 久久久国产精华液| 国产精品成人99久久久久91gav| 亚洲国产成人久久综合碰| 亚洲精品国产字幕久久不卡| 94久久国产乱子伦精品免费| 亚洲国产精品久久久天堂| 久久www免费人成看国产片| 久久香蕉国产线看观看精品yw| 久久久久亚洲av成人无码电影| 精品久久久久香蕉网| 老男人久久青草av高清| 久久久久久亚洲精品成人| 久久久久99精品成人片三人毛片| 亚洲AV无码成人网站久久精品大| 欧美精品一区二区久久| 国产激情久久久久影院老熟女免费 | 亚洲美日韩Av中文字幕无码久久久妻妇| 一本一本久久a久久综合精品蜜桃 一本一道久久综合狠狠老 | 久久久久高潮毛片免费全部播放 | 久久久久亚洲AV成人网| 2021久久国自产拍精品| 亚洲国产另类久久久精品黑人| 人妻中文久久久久| 久久青青国产| 久久久国产99久久国产一| 久久亚洲国产精品123区| 久久九九久精品国产免费直播| 久久国产精品无码网站| 日批日出水久久亚洲精品tv| 久久天天躁狠狠躁夜夜2020老熟妇| 久久精品国产亚洲5555|