日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網(wǎng)站首頁 編程語言 正文

什么是 Reactor 模式?

作者:暗諾星刻 更新時間: 2022-05-11 編程語言

什么是 Reactor 模式?

??Reactor 模式并不是什么很神秘的東西。一般來說,通信有以下兩個關(guān)鍵步驟:一是建立連接,二是進行數(shù)據(jù)的傳輸。一般對通信過程進行優(yōu)化,也就是基于這兩個關(guān)鍵點進行優(yōu)化。

??建立連接通常就是 握手 的過程。在向?qū)Ψ絺鬏敂?shù)據(jù)之前,必須要經(jīng)對方同意,這就是握手。如果建立連接就不成功,后面的數(shù)據(jù)傳輸也不能進行。對于服務(wù)端來講,它需要與眾多客戶端通信,建立連接的成功數(shù)將影響它的吞吐量。對于服務(wù)端,當然是希望它的吞吐量越高越好。我們知道數(shù)據(jù)傳輸通常相對更耗時,為了避免對建立連接造成影響,最好是讓服務(wù)端使用一個與數(shù)據(jù)傳輸不同的線程來完成建立連接的工作。

??對于服務(wù)端來講,它需要與眾多客戶端通信。如果正好需要與多個客戶端同時進行數(shù)據(jù)傳輸,就只能開啟多個線程來完成,且線程數(shù)與連接數(shù)相等。如果線程數(shù)小于連接數(shù),則有些客戶端需要等待。

??Reactor 模式就是基于建立連接與具體服務(wù)之間線程分離的模式。在 Reactor 模式中,會有一個線程(負責與所有客戶端建立連接,這個線程通常稱之為 Reactor。然后在建立連接之后,Reactor 線程會使用其它線程(可以有多個)來處理與每一個客戶端之間的數(shù)據(jù)傳輸,這個(些)線程通常稱之為 Handler。

??由于服務(wù)端需要與多個客戶端通信,它的通信是一對多的關(guān)系,所以它需要使用 Reactor 模式。對客戶端,它只需要與服務(wù)端通信,它的通信是一對一的關(guān)系,所以它不需要使用 Reactor 模式。也就是說,對客戶端來講,它不需要進行建立連接與傳輸數(shù)據(jù)之間的線程分離。

原文鏈接:https://blog.csdn.net/wangpaiblog/article/details/124580590

欄目分類
最近更新