IO多路复用

作者 : 开心源码 本文共759个字,预计阅读时间需要2分钟 发布时间: 2022-05-13 共183人阅读

吴果果课堂开课啦

之所以写这篇文章是在最近看redis底层时,看到IO多路复用,之前看过几遍,由于并不是很懂,看了就不记得,也是由于自己太菜,找了找文章整理了整理,其实至今还是有些囫囵吞枣,不对的地方欢迎拍砖

同步和异步针对应用程序来说,是程序中间的协作关系;阻塞与非阻塞更其实是单个进程的执行状态。同步有阻塞和非阻塞之分,异步没有,它肯定是非阻塞的? ?——转自《https://www.cnblogs.com/aspirant/p/6877350.html》

IO类型其实分为文件IO和网络IO

IO模型又分为阻塞IO,非阻塞IO,而redis、nginx底层所使用的多路复用

阻塞IO(BIO):也就是所有socket都为阻塞的,单线程、面向流、阻塞

非阻塞IO(NIO):一个线程使用一个选择器 Selector 通过轮询的方式去监听多个通道 Channel 上的事件,从而让一个线程即可以解决多个事件

多路复用IO:I/O multiplexing,在单个线程通过记录跟踪每一个Sock(I/O流)的状态来同时管理多个I/O流. 发明它的起因,是尽量多的提高服务器的吞吐能力

下图可以了解为:在同一个线程里面, 通过拨开关的方式,来同时传输多个I/O流

https://www.zhihu.com/question/32163005/answer/55772739

select, poll, epoll 都是I/O多路复用的具体的实现

其实每个知识点都能引申出更多的知识点,欢迎补充,每挖一个点会继续升级,go on?

在学习时看的文章贴出来,同学们也可以看看呀

https://www.zhihu.com/question/32163005/answer/55772739

https://www.songma.com/p/dd05b079e308

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » IO多路复用

发表回复