美文网首页
IO多路复用模型

IO多路复用模型

作者: 飞跑的蛤蟆 | 来源:发表于2020-05-16 00:39 被阅读0次

select模型

  • 跨平台支持好
  • 监视的文件描述符有限(内核限制,1024,fd_set位集合)
  • 使用轮询方式判断fd是否就绪
  • 消息传递方式:内核需要将消息传递给用户空间,需要内核进行拷贝工作
  • 如果fd_set比较大时,会使得用户空间和内核空间在传递该结构时复制开销较大

poll模型

  • 没有最大连接数的限制(poll fd数组)

  • 消息传递方式:与select没有本质的区别,它是将用户传入的数组拷贝到内核空间

  • 也是使用轮询方式判断fd是否就绪

  • 水平触发,如果报告的fd没有被处理,那么下次poll还会再次报告

epoll模型

  • 没有描述符限制

  • 事件驱动模型,为每个fd注册一个监听事件,fd变更为就绪时,将fd添加到就绪链表

  • 消息传递方式:epoll通过内核和用户空间共享一块内存来实现的,利用mmap()文件映射内存加速与内核空间的消息传递,内存拷贝

  • epoll支持水平触发和边缘触发,边缘触发只告诉进程哪些fd刚刚变为就绪状态,并且只会通知一次。

  • 由于使用事件就绪通知方式,不会随着fd数目的增加导致效率下降(只有活跃可用的fd才会调用)

相关文章

  • NIO selector 多路复用reactor线程模型--20

    多路复用IO模型:多路复用IO模型是目前使用得比较多的模型。JavaNIO实际上就是多路复用IO。在多路复用IO模...

  • 细谈Select,Poll,Epoll

    阻塞 io 模型 blocking IO非阻塞 io 模型 nonblocking IOio多路复用模型 IO m...

  • 1.Nette入门第一章——IO演进

    1. IO 基础 1.1. linux网络IO模型 阻塞IO模型 非阻塞IO模型 IO多路复用模型(NIO) 信...

  • 五种 IO 模型

    五种 IO 模型 参考链接 一共有五种 IO 模型 阻塞 IO 非阻塞 IO 多路复用 IO 信号驱动 IO 异步...

  • 2.五种IO模型

    0.IO介绍1.阻塞IO模型2.非阻塞IO模型3.IO多路复用模型4.信号驱动IO模型5.异步IO模型6.五种IO...

  • Java中的IO模型

    Java中的IO模型 Java中的IO模型有四种: 同步阻塞IO 同步非阻塞IO IO多路复用 异步IO 其中IO...

  • IO多路复用select,poll,epoll

    IO多路复用 常见的三种IO多路复用模型: select, poll, epoll 使用自己的语言简练的描述一下:...

  • IO多路复用

    IO模型 阻塞IO只能阻塞一个IO操作,IO复用模型能阻塞多个IO操作,所以才叫多路复用读数据: 等待数据到达 将...

  • Netty浅析

    IO模型 IO多路复用模式:Reactor、Proactor NIO实现的是Reactor模式。通过select、...

  • netty学习主目录

    学习基础 四种io模型(同步阻塞io,同步非阻塞io,io多路复用(select/poll,epoll),异步io...

网友评论

      本文标题:IO多路复用模型

      本文链接:https://www.haomeiwen.com/subject/xtvkohtx.html