三種執行緒池模型

2021-08-25 19:07:23 字數 374 閱讀 9804

half-sync/half-async (hs/ha)

將執行緒分為兩個部分,一部分專門處理非同步事件,另一部分專門處理同步事件。

在網路伺服器裡,一般非同步事件指的是socket事件,同步事件指的是業務邏輯。

leader/follower (lf)

所有執行緒輪流監聽請求,監聽到後將監聽令牌傳到下乙個執行緒,然後自己轉去處理收到的請求。

這種模型的好處是避免了執行緒切換。

staged event-driven architecture (seda)

嚴格來說這個也是屬於hs/ha,只是將業務邏輯部分再細分,為不同階段按需分配不同大小的執行緒池。

spserver支援前兩種模型。

netty使用了第三種模型。

三種執行緒池比較

伺服器程式 最核心的任務之一就是處理一組任務,在處理一組任務的時候最常見的做法是用執行緒池,最常見的執行緒池一般是由一組執行緒等待在乙個訊號燈上,有乙個任務到達後解鎖乙個執行緒,讓該執行緒去處理任務,執行緒處理完成後又回歸到執行緒池,此做法比來乙個任務分配乙個執行緒的古老方法效率高了很多,但這也不是...

三種執行緒池比較

三種執行緒池比較 伺服器程式最核心的任務之一就是處理一組任務,在處理一組任務的時候最常見的做法是用執行緒池,最常見的執行緒池一般是由一組執行緒等待在乙個訊號燈上,有乙個任務到達後解鎖乙個執行緒,讓該執行緒去處理任務,執行緒處理完成後又回歸到執行緒池,此做法比來乙個任務分配乙個執行緒的古老方法效率高了...

執行緒池下的三種socket模型分析

執行緒池 預先建立指定數量的執行緒,節省在實際應用中不斷新建和 子執行緒的時間。每個執行緒都阻塞於accept上,當有客戶端連線時,阻塞accept上的執行緒都被喚醒,競爭,只有乙個執行緒去處理accept,其他執行緒繼續阻塞。設定乙個主控執行緒,主控執行緒accept,其他任務執行緒等待主控執行緒...