linux 5种IO模型

        linux系统中,一切皆文件,在操作文件过程中使用不同操作模式会对性能造成极大影响。目前linux存在五种IO模型。

同步阻塞IO

        同步阻塞IO是最简单,最常用的模型,其流程为用户线程向内核空间发起调用,内核空间将数据准备好后返回到用户空间,在此过程中用户线程阻塞。

同步非阻塞IO

        同步非阻塞IO是在同步阻塞IO的基础上,将socket设置为NONBLOCK。这样做用户线程可以在发起IO请求后可以立即返回,但用户线程需要不断循环获取内核处理结果。

 IO多路复用

        IO多路复用是目前使用较广泛的一种IO模型,用户线程监听socket,有请求时先请求到内核空间,待内核空间数据准备就绪,返回用户线程socket可读后,执行read操作。目前IO多路复用有三种实现方式分别为select、poll、epoll。从调用方式来说,前两种都是通过轮询获取内核结果,epoll则是事件驱动,监听内核事件变化进行处理。

        

信号驱动IO

        用户线程发起请求后立刻返回,待内核处理完后发送信号给用户线程,用户线程接到信号进行处理。

异步IO

        用户线程发起调用后立刻返回,由内核处理完毕后将数据返回。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值