網路開發的一些總結

2021-04-18 23:52:02 字數 584 閱讀 3854

(1) i/o 模型的選擇,

epoll就一定好嗎?  那是肯定的。

這個和select, poll有什麼區別。

epoll還有比select, poll先進得地方, 就在於將fd得列表維護在核心中, 而select, poll是呼叫一次,傳遞一次, 這點epoll領先是沒得說得。

最主要還是epoll系統呼叫的實現方式採用事件方式,比poll, select的輪詢方式強的多

(2) 使用非堵塞

做為網路伺服器, 堵塞i/o一般情況下不予考慮,視伺服器模型

(3) 減少i/o操作和無謂的系統呼叫

比如利用writev一次性寫入多個資料, 減少write呼叫的次數.

或者使用零拷貝的sendfile,tee等

(4) tcp是雙工的

這點不要忽略掉, 資料**程式就在於資料的**速度, 這裡我採用讀和寫分開執行緒的處理方式

(5) 程序還是執行緒

這個無關緊要,乙個粒度和資料訪問, 穩定性的問題。減少之間的相互影響,盡量沒有關聯, 比如減少對相關互斥資料的訪問等等。

(6) 盡量在設計上做到不需要鎖

比如使用環形快取, 環形訊息佇列等

網路協議一些總結

下面是一些經常在筆試或者面試中碰到的重要的概念,特在此做摘抄和總結。一 什麼是tcp連線的三次握手 第一次握手 客戶端傳送syn包 syn j 到伺服器,並進入syn send狀態,等待伺服器確認 第二次握手 伺服器收到syn包,必須確認客戶的syn ack j 1 同時自己也傳送乙個syn包 sy...

開發的一些總結(2)

1.static的意義 如果任何乙個x前加了static修飾,那麼這個x允許其他原始檔建立同名函式且不衝突。不能被其他原始檔訪問 修改,可以直接用class訪問,不用例項化。同時static類的東西也不能操作非static型別的東西。在標頭檔案如果說明了乙個static型別變數,就要在,cpp檔案的...

phpcms 開發的一些總結

1 在模板中擷取內容的長度進行顯示 class xgwz href class xg 上一條 strong a href class xg 下一條 strong a href class more 返回列表 src new more3.png width 16 height 16 a div 3 列...