异步I/O搜索

reactor模式与proactor模式的区别与联系

 

阻塞/非阻塞  VS 同步异步

 

阻塞I/O发起read请求,线程会被挂起,一直等到内核数据准备好,并把数据拷贝到应用程序的缓冲区中,拷贝过程完成,

read请求调用才返回。

第二种是非阻塞I/O。 非阻塞的read请求在数据未准备好的情况下立即返回,应用程序可以不断轮旬内核,直到数据准备好,内核将数据拷贝到应用程序缓冲,并完成这次read调用,最后一次read调用 是获取数据的过程

每次让应用程序去轮旬内核的I/O是否准备好,也是一种不经济的做法非,因为在轮旬的过程应用程序啥也不能做/。

 

I/O多路复用,通过I/O事件分发,当内核数据准备好时,再通知应用程序进行操作,改善了CPU的利用率,应用程序也可以使用CPU做其他的事情

这三种都是同步I/O调用技术。因为同步调用,异步调用的说法,是对于获取数据的过程而言的,全面几种最后获取数据的read操作调用都是同步的,在read调用时,内核将数据从内核空间拷贝到应用程序空间,这个过程是在read函数中同步进行的,如果内核拷贝效率差,read调用会在这个过程消耗较长的事件

异步I/O技术

当我们发起aio_read之后,立即返回,内核自动将数据从内核空间拷贝到应用程序空间,这个拷贝过程是异步的,在内核自动完成的,和前面的操作不同

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值