IO模型-非阻塞IO模型

目录

一、概念

二、操作流程

三、使用场景


 

一、概念

 

NIO(非阻塞IO模型)NIO即Non-Blocking IO,是非阻塞IO模型。概念限定范围:通过系统api获取数据。

也就是说调用系统api获取数据后,会立刻返回结果,程序不会阻塞等待数据。 根据返回的结果判断是否继续重复调用系统api获取数据。

二、操作流程

 

 该模式下应用进程会以较高频率调用系统api进行数据获取,也就是说进程与内核会出现较多交互(进程用户态与内核态相互切换),直到获取到数据为止。

要注意的是,当内核数据准备好后,数据是需要由内核空间复制到用户的存储空间,这个复制数据的过程是阻塞的(也就是说,当数据特别大时,这个复制也会比较长时间,进程在这段时间内是不能立刻返回,需要等数据复制完成了返回结果)。

三、使用场景

一般将socket设置为NONBLOCK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值