IO復用 TomJames的部落格

2022-09-23 04:09:08 字數 588 閱讀 7202

io復用:mariadbperconadbweb :nginx , lnmp, memcached ,tomcat ,varnishwww.nginx.org 官方站點

nginx pronounced engine-xhttp伺服器反向** :reverse proxy反向**的協議 httpmail

netcraft ** web市場占有率

nginx優勢 :高效能穩定性豐富的特性簡單配置低資源消耗

多程序模型程序切換阻塞狀態 不可中斷睡眠dma 直接記憶體訪問

c10k單程序 :阻塞多程序 :每個程序響應乙個請求程序量大。程序切換次數過多每個程序的位址空間是獨立,很多空間是重複的資料,所以記憶體使用效率較低執行緒 :thread, light weight process, lwp每個執行緒響應乙個請求執行緒依然需要切換,切換較之程序輕量級同乙個程序的執行緒可以共享程序的諸多資源,比如開啟的檔案對記憶體的需求較之程序略有下降快速切換時會帶來執行緒抖動忙等 :自旋鎖 spin lock閒等

多程序多執行緒模型:多執行緒:n個請求乙個執行緒響應多個請求select(1024)aio :非同步io

同步通訊非同步通訊

多路io,io復用

I O復用和I O模型

由 unix網路程式設計卷1 總結而來。同時監視多個i o條件,在其中任意乙個就緒時通知程序,這樣的能力稱為i o復用。由select和poll函式支援,較新的還有posix中的pselect函式。linux中還有epoll i o復用應用場合 1 客戶同時處理多個描述符時,必須使用i o復用。2 ...

I O復用 各種不同的IO模型

我們看到上面的tcp客戶同時處理兩個輸入 標準輸入和tcp套接字。我們遇到的問題就是在客戶阻塞於 標準輸入上的 fgets呼叫期間,伺服器程序會被殺死。伺服器tcp雖然正確地給客戶tcp傳送乙個fin,但是既然客戶程序阻塞於從標準輸入讀入的過程,它將看不到這個rof,知道從套接字讀時為止 可能已經過...

IO的多路復用

使用select函式實現io多路復用 include include include include 1 select int select int nfds,fd set readfds,fd set writefds,fd set exceptfds,struct timeval timeout...