reactor模型—生動形象

網上有很多講解reactor模型的,我還是看了比較久才稍微領悟一點意思,那麼我就舉個例子講講自己的理解。

我們首先先結合NIO、多路複用的知識,做一個比喻。

大前提:餐館的服務員現在假設只有一個(並且他兼職廚師),那麼當一個客人來了之後,服務員會把菜單給客人,然後就走開去迎接其他客人,當有客人點好餐的時候會把菜單告訴服務員,服務員就會去做事,熱按後服務員再把菜給客人,就完成了完整的一次流程。

那麼針對reactor的三種模型。

一.單線程模式

那麼這個時候就是指餐廳只有一個服務員,那麼這個時候會產生什麼問題喃?

(1)當客人多了的時候,應付不過來。(網絡請求多了以後,很多請求其實就是一直在等待)

(2)當有一個客人的菜特別複雜的時候,例如滿漢全席,那其他客人就只能一首涼涼了。(當一個業務處理很久或者死循環了,那麼整個服務掛掉)

所以針對上面的缺點,有了第二種模式。

二.多線程模式

那麼這個時候就是指餐廳可以請多個廚師了,服務員被解放出來了,只用招呼客人。這樣就可以很好地解決單線程模式的困擾。但是這樣仍然存在一定的問題。

(1)當客人特別特別多的時候,服務員忙不過來了。

(2)廚師高產出下,會把菜交給服務員,結果服務員也忙不過來了。

爲了解決這樣的問題,就有了第三種模式。

三.主從模式

那麼這個時候就是指:老闆把這個服務員升級成主管了,然後老闆另外請了幾個服務員。每次來客人總會經過主管之手,然後主管就隨便告訴一個其他的服務員先招呼客人(做主管以前做的事情,即一,二),然後主管就什麼都不用管了,這個時候主觀的壓力就很小了,以前是10個客人的菜都由他傳遞與接收,現在是平分給了其他幾個服務員,這樣效率就更高了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章