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 条评论
登录 后参与评论

相关文章

来自专栏EAWorld

生成全局唯一ID的3个思路,来自一个资深架构师的总结

标识(ID / Identifier)是无处不在的,生成标识的主体是人,那么它就是一个命名过程,如果是计算机,那么它就是一个生成过程。如何保证分布式系统下,并行...

3366
来自专栏智能算法

数据异常到底该如何检测?(一)

小编在正式进入工作之后,面对的第一个需要去解决的问题:在网络安全监测中,如何发现异常数据?如异常用户登录,异常操作等。对于网络上的问题我确实是第一次接触这样类型...

3347
来自专栏Java技术栈

春节跳槽最新Java面试题及答案整理

大年初七好,今天大部分码农同学已经上班了吧,最近也是跳槽人才流动的高峰期,拿了年终奖,找找更好的机会。 小编也面了几家公司了,回来整理下面经分享给大家做个参考。...

3327
来自专栏Java技术

【面试题】2018年最全Java面试通关秘籍第五套!

注:本文是从众多面试者的面试经验中整理而来,其中不少是本人出的一些题目,网络资源众多,如有雷同,纯属巧合!禁止一切形式的碰瓷行为!未经允许禁止一切形式的转载和复...

791
来自专栏编程一生

架构师之路--搜索业务和技术介绍及容错机制

872
来自专栏大数据和云计算技术

数据组织核心技术

要高效地使用数据,就必须要有组织,因此业界对数据的结构化组织有很多探索。 1)Cube技术概念 OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表...

2837
来自专栏一个会写诗的程序员的博客

函数式编程与面向对象编程[5]:编程的本质函数式编程与面向对象编程[5]:编程的本质编程的本质

函数式程序员在洞察问题方面会遵循一个奇特的路线。他们首先会问一些似有禅机的问题。例如,在设计一个交互式程序时,他们会问:什么是交互?在实现 基于元胞自动机的生命...

632
来自专栏Python疯子

数据挖掘关联分析中的支持度、置信度和提升度

一般我们使用三个指标来度量一个关联规则,这三个指标分别是:支持度、置信度和提升度。

858
来自专栏编程一生

ORM规约变更经典案例---mysql军规

1114
来自专栏数据结构与算法

单调队列优化多重背包

\(f[i][j] = max(f[i - 1][j - k * w[i]] + k * v[i])\)

561

扫码关注云+社区