伺服器如何選擇合適的IO模型
伺服器如何選擇合適的IO模型
IO模型又分為:
(1).阻塞I/O模型:資料沒到達之前,I/O一直阻塞,如果資料到達,則會返回。典型的是recvfrom,一般的預設都是阻塞的。
(2).非阻塞的I/O模型:和阻塞相反,只要不能得到結果的時候,I/O立刻返回。不會阻塞當前執行緒。
IO複用模型:也就是自己要學習的部分。多路複用的意思是,將多路訊號合併到一路上進行處理,類似多個管道彙集到一個管道,與之相反的是多路分解。
IO複用模型主要是select,poll,epoll;對一個IO埠,兩次呼叫,兩次返回,比阻塞IO並沒有什麼優越性;關鍵是能實現同時對多個IO埠進行監聽;函式也會使程式阻塞,但是和阻塞I/O所不同的的,這兩個函式可以同時阻塞多個I/O操作。而且可以同時對多個讀操作,多個寫操作的I/O函式進行檢測,直到有資料可讀或可寫時,才真正呼叫I/O操作函式。
訊號驅動:首先開啟套介面訊號驅動I/O功能,並透過系統呼叫sigaction安裝一個訊號處理函式。當資料包準備好被讀時,就為該程式生成一個SIGIO訊號。隨即可以在訊號處理程式中呼叫recvfrom來讀資料包,井通知主迴圈資料已準備好被處理中。也可以通知主迴圈,讓它來讀資料包。
非同步的IO模型:告知核心啟動某個操作,並讓核心在整個操作完成後(包括將資料從核心複製到使用者自己的緩衝區)通知我們。這裡並不是說一定要用某個模型,epoll也並不是在所有情況下都比select效能要好的,壹基比十月認為在選擇的時候還是要結合業務需求來。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70019600/viewspace-2927788/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 伺服器如何選擇合適的配置伺服器
- 如何選擇合適自己的伺服器伺服器
- 如何選擇合適的美國伺服器?伺服器
- 如何選擇適合自己的伺服器託管商?伺服器
- 如何選擇合適的 BI 工具?
- 香港伺服器如何選擇合適的作業系統?伺服器作業系統
- 如何選擇適合的伺服器【5大注意事項】?伺服器
- 企業如何選擇合適的伺服器--巴克網路伺服器
- 企業網站如何選擇適合自己的伺服器?網站伺服器
- Theisle伺服器多少錢?Theisle如何選擇合適的配置?伺服器
- 如何選擇適合的美顏SDK?
- 如何選擇合適的建站系統
- 如何選擇一臺適合個人使用的雲伺服器?伺服器
- 利聯科技:如何正確的選擇適合自己的伺服器伺服器
- 如何為DMAIC選擇合適的專案AI
- 如何選擇最好最適合你的MacBookMac
- 如何選擇合適的NoSQL資料庫SQL資料庫
- 如何選擇適合RCD負載箱負載
- 「模型訓練」如何選擇最適合你的學習率變更策略模型
- 團隊如何選擇合適的Git分支策略?Git
- 如何選擇適合大學使用的郵箱
- 如何選擇適合自己的虛擬主機
- 如何正確選擇適合的CRM系統?
- 如何選擇適合自己的solidworks軟體版本Solid
- 如何選擇合適的SSL證書型別型別
- GitHub如何選擇合適的license(許可證)Github
- 如何選擇適合你的程式碼風格?
- 阿里雲企業級雲伺服器如何選擇合適的雲盤?阿里伺服器
- 如何選擇一臺適合個人/企業的網站伺服器網站伺服器
- 伺服器託管選擇多大頻寬合適伺服器
- 企業怎麼選擇合適自己的雲伺服器?伺服器
- 如何選擇適合管理銷售的CRM系統?
- 快取之美——如何選擇合適的本地快取?快取
- 如何選擇適合的空氣壓縮機油?
- 如何選擇合適的自動化測試工具?
- 如何選擇最適合您的代理提供商?
- 如何選擇適合自己企業的MES系統
- java培訓機構如何選擇適合自己的Java