妹子让阿粉跟她说说怎样写出好的代码
通过异步处理函数如aio_read告知内核启动某个动作,并且让内核在整个操作完成之后再通知应用进程,内核会在把数据复制到用户空间缓冲区之后再进行通知。整个IO过程应用进程都不会被阻塞。 异步IO最大的优化点在于:系统调用是昂贵的,异步IO将轮训等待数据的系统调用(如select,poll,epoll)和读取数据操作合并起来。 下面我们就通过具体了例子来演示下异步IO程序的处理流程。 2、异步IO相关函数使用案例 本节我们介绍下POSIX定义的异步操作接口。 2.1、异步IO相关API
每个异步函数都需要传入一个aiocb结构(异步IO控制块),这个结构格式如下 无论是非阻塞IO,IO复用,还是信号驱动式IO,都不是真正意义上的IO,真正的异步IO是数据从内核空间拷贝到用户空间也是异步处理的,拷贝完成,再通知应用进程,应用进程直接读取用户空间的数据进行操作。 到目前为止,我们介绍了阻塞IO,非阻塞IO,信号驱动式IO,IO复用,我们打个形象的比方,来对这几种IO做下区分。 我们去网上买东西,下完单之后,你可以有如下几种处理方式:
异步IO最关键的一点就是在读取数据的时候,将IO的buffer提交给内核,让内核往这个buffer写数据。 这节我们就来介绍下异步IO模型和相关API,并且顺便介绍下当下最新的更高性能的IO模型。 阅读完本文,你将了解到:
1、异步I/O模型介绍 (编辑:唐山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |