基於libuv的TCP設計(一) html
基於libuv的TCP設計(二) git
1、第二版本的libuv_tcp已經基本可使用。不會出錯與崩潰現象,支持幾百路客戶端同時鏈接。但是有一缺陷就佔用CPU很是高。由於IDLE階段一直檢測有無數據須要發送,因此當服務器空閒時IDLE會空轉,佔用CPU。現在對此流程進行了改進。 github
2、改進 數據庫
1.去掉prepare,check,idle事件 服務器
2.prepare裏的判斷用戶關閉tcp和發送數據由uv_async_send代替 異步
3.從新定義客戶端數據struct與發送數據的struct async
4.回收空閒handle,write_t時判斷是否多出預計,多時不回收,直接釋放。 tcp
5.Packet類改成PacketSync。同步解析數據庫包,夠一包直接觸發回調給用戶。再也不使用另外一線程異步解析。 spa
—————————————————————————————————————————————————————————————————————— 線程
代碼已上傳到git: https://github.com/wqvbjhc/libuv_tcp
本文版權歸做者和博客園共有,來源網址:http://www.cnblogs.com/wqvbjhc/
歡迎各位轉載,可是未經做者本人贊成,轉載文章以後必須在文章頁面明顯位置給出做者和原文鏈接,不然保留追究法律責任的權利。