boost asio中有兩點用的不爽:
1. asio中的所有物件都引用io_service
2. async_write還要自己保證內存在completed之前有效
有空要把這兩點搞的更傻瓜一點,實際上在全非同步模式下net io分配兩個執行緒足矣,async搞乙個佇列,completed時候刪掉,還可以通過writev優化寫, 現在在做的乙個redrabbit lib
就是在boost asio上封裝的更傻瓜一點。
如果再有空,想自己封裝一下epoll, 不考慮移植性,很少的模板,比較簡單的類關係,
看了一下asio 原始碼,其思路不是很複雜,但是為考慮移植性,使用了大量的模板和ifdef,可讀性稍差,
我常常意識到,即使使用boost asio這樣的proactor模式的io庫,tcp程式設計仍然還是複雜,需要了解好多技術細節,
個人覺得zeromq是個非常好的思路,
每個專案花一兩個月寫tcp模組真是太蛋疼了,
要是能在巨人的肩膀上,不是更好。
Boost asio 學習筆記
boost asio 是個一由c 編寫的 跨平台的 使用現代化c 方法的 提供了統一的非同步模型的網路和底層i o 開發庫。個人理解 io service 就是boost asio 基於os的i o引擎,其他的功能是建立在它之上的 io service 擁有所有非同步i o物件 socket dea...
Boost asio學習筆記 網路程式設計
boost庫中的網路程式設計的例子比較複雜,不太好理解,所以,從網上找了乙個簡單點的例子。如下 經過修改,可以執行。伺服器 servier.cpp include include bind hpp include include include iostream using boost asio i...
boost asio,執行緒池
網上大部分人都講boost.asio用完成埠實現,並且實現了執行緒池,所以效率非常的高。我在應用asio的時候發現完成埠是有,但是執行緒池確並不存在,而且在現有的架構下,要想用執行緒池來實現對資料的處理,可能寫出來不是很好看。asio通過開啟執行緒呼叫io service run再呼叫win ioc...