代码改变世界

boost.asio的跨平台实现

2011-04-12 18:11 by leo_hello, 3205 阅读, 0 推荐, 收藏, 编辑
摘要:前几天写了篇日志<<关于boost.asio的一点备忘>>,主要是基于其在linux平台下的实现写的,今天还是一篇备忘,根据boost.asio在win与非win下的实现来谈谈它的跨平台设计与实现.boost.asio根据系统平台提供的事件多路分发机制来实现proactor模式,实现的差异化主要体现在支持IOCP机制与支持其它分发机制,下面就基于boost.asio在win系统(支持IOCP)与linux系统(支持epoll)下的实现来谈谈它的跨平台设计,非win系统的差异化主要表现在对reactor(系统提供的IO事件多路分发机制,如epoll,kqueue等)的封装 阅读全文

boost.asio的一点备忘

2011-04-08 14:22 by leo_hello, 2579 阅读, 0 推荐, 收藏, 编辑
摘要:这两天事情不多,简单看了下boost.asio的源码,因为asio采用proactor模式,而windows下的IOCP本身就是这个模式的体现,所以将精力集中在了asio在linux下的实现(asio在windows下采用了IOCP,linux下用epoll,还有其它的一些实现如kqueue,select等).在高性能服务器并发模型设计中,Reactor和Proactor是两个经常用到的设计模式,前者用于同步IO,后者用于异步IO,前者在IO操作就绪的情况下通知用户,用户再采取实际的IO操作,后者是在IO操作完成后通知用户,举个简单的例子,比如说你有一封信到了邮局,Reactor模式就是邮局的 阅读全文