生動詳細分析Linux IO 模型總結

一.場景:

    地點爲網吧,時間爲晚上7點,xxx遊戲正在更新版本,要玩遊戲需更新下載遊戲(大概需要一個小時),此刻正是晚飯時間,大家都餓了;現在網民們要做的是下載遊戲、吃飯,怎麼安排更爲合理呢。

二、方案:

    1.心裏裝的都是遊戲,根本沒心情吃飯:

        下載遊戲,雙眼定製進度條,不想幹其他的,等看到下載完畢之後,纔想去吃飯。

        缺點:耽誤吃飯。

        知識點:同步阻塞。

    2.目不轉睛盯着電腦很累的,不想這樣下去,但是也沒心情吃飯:

        遊戲下載完畢,電腦會“叮”一聲,當聽到“叮”,纔想去吃飯。

        缺點:耽誤吃飯。

        優點:不用一直盯着電腦

        知識點:異步阻塞

    3.心裏惦記着遊戲,可是吃貨們不能餓肚子啊:

        下載遊戲,同時吃飯,吃兩口再看看電腦下載進度,直到下載完成。

        缺點:不能專心吃飯,吃完飯都不知道自己吃的啥。

        優點:不耽誤吃飯了。

        知識點:同步非阻塞。

    4.上面的方案大家都接受不了,大家聽說網管的主機可以監控所有電腦,要不找網管一個人代看下載進度如何(IO多路複用):

        ①期初,網吧規模小,只有10臺電腦,網管的主機配置低,剛好能監控這10臺電腦

            網管的主機可以監控網吧所有電腦,大家可以放心 出去 吃飯了,當有電腦下載完成,網關就在主機上找(遍歷),是哪一臺電腦下載完成了,再通知對應網民。

            缺點:電腦配置低,監控數量有限;網管比較累,還得找具體哪一臺下載完畢。

            優點:網民們可以優雅的吃飯了。

            知識點:IO多路複用-select。

        ②網吧擴建,來上網的人多了,主機升級配置,可以監控更多臺電腦

            缺點:網管比較累,還是得找具體哪一臺下載完畢。

            優點:網民們可以優雅的吃飯了。

            知識點:IO多路複用-poll。

        ③網管太累了,真的不想繼續苟活

            網管發憤圖強,優化主機監控程序,當有電腦下載完成,主機彈框提示具體是那一臺電腦下載完成。

            優點:網管笑了

            隱藏缺點:主機很忙,電腦太多,主機也扛不住

            知識點:IO多路複用-epoll

 

原創不易,轉發請標明出處,3Q。

 

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