前言

繼續(xù)更新“用 C 寫一個 web 服務(wù)器”項目(上期鏈接:用C寫一個web服務(wù)器(一) 基礎(chǔ)功能),本次更新選擇了 I/O 模型的優(yōu)化,因為它是服務(wù)器的基礎(chǔ),這個先完成的話,后面的優(yōu)化就可以選擇各個模塊來進行,不必進行全局化的改動了。

I/O模型

接觸過 socket 編程的同學(xué)應(yīng)該都知道一些 I/O 模型的概念,linux 中有阻塞 I/O、非阻塞 I/O、I/O 多路復(fù)用、信號驅(qū)動 I/O 和 異步 I/O 五種模型。

其他模型的具體概念這里不多介紹,只簡單地提一下自己理解的 I/O 多路復(fù)用:簡單的說就是由一個進程來管理多個 socket,即將多個 socket 放入一個表中,在其中有 socket 可操作時,通知進程來處理, I/O 多路復(fù)用的實現(xiàn)方式有 select、poll 和 epoll。

網(wǎng)友評論