Boost asio 心得笔记

Boost asio中有两点用的不爽:

1. asio中的所有对象都引用io_service

2. async_write还要自己保证内存在completed之前有效

有空要把这两点搞的更傻瓜一点,实际上在全异步模式下NET IO分配两个线程足矣,async搞一个队列,completed时候删掉,还可以通过writev优化写, 现在在做的一个redrabbit lib

就是在boost asio上封装的更傻瓜一点。

http://code.google.com/p/redrabbit/source/browse/#svn%2Ftrunk

如果再有空,想自己封装一下epoll, 不考虑移植性,很少的模板,比较简单的类关系,

看了一下asio 源码,其思路不是很复杂,但是为考虑移植性,使用了大量的模板和ifdef,可读性稍差,

我常常意识到,即使使用boost asio这样的proactor模式的io库,TCP编程仍然还是复杂,需要了解好多技术细节,

个人觉得ZeroMQ是个非常好的思路,http://www.zeromq.org/

每个项目花一两个月写tcp模块真是太蛋疼了,

要是能在巨人的肩膀上,不是更好。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏跟着阿笨一起玩NET

EF中Repository模式应用场景

   在DDD领域构架系统中,为了将领域模型从领域逻辑层中和数据映射层之间解耦出来,我们引用到了Repository模式,属于属于泛型编程中一个比较常用的模式,...

39930
来自专栏LanceToBigData

OOAD-设计模式(二)之GRASP模式与GOF设计模式概述

一、GRASP模式(通用责任分配软件模式)概述 1.1、理解责任   1)什么是责任     责任是类间的一种合约或义务,也可以理解成一个业务功能,包括行为...

243100
来自专栏王大锤

iOS中的预编译指令的初步探究

44380
来自专栏杨熹的专栏

2 天入门 Java-Day 1

图片来自 新生大学 公众号 今天一口气敲完了慕课网上的 《Java入门第一季》,这个课的老师讲的挺好的,视频资料做的挺用心。 课程操作界面很像 codecade...

44880
来自专栏nimomeng的自我进阶

Swift 4.2新特性——WWDC2018 Session401笔记

厨子今年的演讲很不给力。不过既然是软件开发者大会嘛,焦点自然应该放在软件功能上。 所以我看了下今年的Session401,也就是Swift4.2新特性介绍,做...

39720
来自专栏编舟记

生成式测试(Generative Testing)

满足需求是所有软件存在的必要条件,单元测试一定是为它服务的。从这一点出发,我们可以总结出写单元测试的两个动机:驱动(如:TDD)和验证功能实现。另外,软件需求易...

19030
来自专栏LET

CPU SIMD简介

之前的两篇文章,分别介绍了CPU和CPU Cache两个话题,性能是永恒的核心。我们也谈到了优化CPU性能面临的三堵墙:

22530
来自专栏我的小碗汤

使用pprof优化golang性能

Donald E.Knuth说过一句非常著名的话,过早的优化是万恶之源。原文如下:

21340
来自专栏WOLFRAM

Wolfram 语言10.2版本新函数:ISO日期

17130
来自专栏恰童鞋骚年

设计模式的征途—15.观察者(Observer)模式

在日常生活中,交通信号灯指挥者日益拥挤的城市交通。红灯亮,汽车停止;绿灯亮,汽车继续前行;在这个过程中,交通信号灯是汽车的观察目标,而汽车则是观察者。随着交通信...

11220

扫码关注云+社区

领取腾讯云代金券