IO模型 小小的太陽

2022-09-23 06:15:12 字數 671 閱讀 3918

io模型

redis是單執行緒的,為什麼支援高併發?node.js,nginx也是單執行緒的。除了redis資料是存在記憶體裡面的,所有操作都是記憶體級別的,還有其它原因導致它有如此高的效能?

多路復用(事件輪訓)

多路復用是一種io模型,那系統中還有哪些io模式?一起來看看吧

常見的io模型

同步阻塞io(blocking io)

傳統io模型,請求server,如果server沒有返回,client會一直等待,直到超時

同步非阻塞io(non-blocking io)

請求server,無論是否成功,server都會立刻返回結果

io多路復用(io multiplexing)

即reactor設計模式,select/epoll的好處就在於單個process就可以同時處理多個網路連線的io。它的基本原理就是select/epoll這個function會不斷的輪詢所負責的所有socket,當某個socket有資料到達了,就通知使用者程序。現在作業系統多路復用api已經不再使用select系統呼叫,而改用epoll(linux)和kqueue(fressbsd和macos)

非同步io(asynchronous io)

即proactor設計模式,client發起read操作,就可以進行其它操作,server操作成功會通知client

參考:

小小的疑問和小小的想法

1.事情交與你手,是否應該盡職盡責?大部分人說,你肯定要盡職盡責,少部分人會說這個可以不。我也一直認為應該盡職盡責,但是部分原因導致不會努力去做,如下所述 a 此事責任權是否在於你 如果我做這件事完全不用承擔任何責任,那我根本不會去努力去做,做了之後沒有任何感覺,做與不做的區別在於,少了參與做此事的...

小小的感悟

假期或許真的是乙個人頹廢的開始 這個小假期著實讓我頹廢了三天!回想在沒有放假的時候,自己總是在很早就起來,並開始自己的工作 但是,這幾天卻是一種頹廢,看 睡覺 之前自己規劃著來做乙個小型的專案,主要是對檔案的一些操作 例如 動態讀取檔案裡面的資料 建立檔案 寫入資料等相關的檔案操作。或許規劃就是指導...

小小的總結

知道了f12是重新命名的快捷鍵,shift ctrl n是建立新資料夾的快捷鍵。知道了乙個c語言程式包括哪些部分 標頭檔案 include主函式入口main 花括號 明白了建立場景不是建立資料夾,而是建立scene,將它重新命名為game,用於儲存遊戲。錨點是乙個影象本身方塊與本身方塊的距離。回憶了...