前言

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

I/O模型

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

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

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式