摘要: 前摄器(proactor)设计模式:没有线程的并发Asio库同时提供对同步和异步操作的支持。异步操作的支持基于前摄器设计模型。这种方法与同步或反应器方法对比的优缺点列在下面。前摄器和Asio不考虑平台相关细节,我们来检查一下前摄器设计模式在Asio中是如何实现的。前摄器设计模式Asynchronous Operation(异步操作)定义一个异步执行的操作,例如socket的异步读写。Asynchronous Operation Processor(异步操作处理器)执行异步操作,并在操作完成时将事件放入完成事件队列。从高层的观点看,stream_socket_service之类的服务是async 阅读全文
posted @ 2012-08-21 00:24 国超 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 基本Asio解剖Asio在I/O对象例如sockets上完成操作,即可是同步操作也可是异步操作。在开始使用Asio以前,了解Asio多个部分,你的程序,以及他们怎么一起工作的的概念图非常有用的。我们考虑当你在一个socket上执行一个连接操作时都发生了些什么作为一个引导的例子。我们可以通过考察同步操作开始。Your program(你的程序)会至少有一个io_service对象。io_service表示your program(你的程序)到operating system(操作系统)的I/O服务的纽带。asio::io_service io_service;要执行一个I/O操作,your pr 阅读全文
posted @ 2012-08-19 00:12 国超 阅读(844) 评论(0) 推荐(0) 编辑
摘要: Asio 是一个跨平台的C++库,用于网络和底层IO编程,以现代C++方式提供给开发者一个一致异步模型。概览原理大多数程序以某种方式与外部世界交互,不论它通过文件,网络,串行电缆,或者控制台。以网络为例,有时单独一次的I/O操作要花费很长时间才能完成。这对程序开发造成了特别的挑战。Asio提供了工具来管理这些长运行的操作,不需程序使用基于线程和眀锁的并发模型。Asio库是为用C++做系统编程的编程者们准备的,这里访问操作系统功能例如网络是频繁的。特别的,Asio定位以下目标:可移植性。库应该支持一系列常用的操作系统,并且在这些系统间提供一致的行为。可伸缩性。库应该方便扩展到数千并发连接的网络程 阅读全文
posted @ 2012-08-18 21:34 国超 阅读(910) 评论(0) 推荐(0) 编辑
摘要: 终于还是在这里开始博客了。对微博是有一种抵触情绪的,对博客,不好说。其实我是一个有点懒的人。3月份,换了一个新公司,比较提倡博客分享想法,因为懒,一直没有理会。工作后,很多这样的现象。一个东西,研究了一下,当时觉得很明白了,中间间隔一段时间,再次回来的时候,发现全部都忘记了,又要重新思考一边。这时候,就有写点东西记录的欲望了。如果做了记录,重新回来的时候,就会节省很多的精力。当然如果这些不成熟的想法能够帮到别人,那就更是荣幸了。看了很多平台,感觉最喜欢的还是博客园。注册了以后,发现博客还要另外申请,我不高兴了,最讨厌的就是天朝的这些东西。我是一个愤青吧,或许只是半愤。我果断不申请,去其他平台看 阅读全文
posted @ 2012-08-18 17:16 国超 阅读(191) 评论(0) 推荐(0) 编辑