5种io模型摘要

Posted silyvin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5种io模型摘要相关的知识,希望对你有一定的参考价值。

https://www.jianshu.com/p/db5da880154a

 

I/O多路复用,I/O就是指的我们网络I/O,多路指多个TCP连接(或多个Channel),复用指复用一个或少量线程。串起来理解就是很多个网络I/O复用一个或少量的线程来处理这些连接。

 

理解了select就抓住了I/O多路复用的精髓,对应的操作系统中调用的则是系统的select函数,该函数会等待多个I/O事件(比如读就绪,写)的任何一个发生,并且只要有一个网络事件发生,select线程就会执行。

 

阻塞式I/O和I/O复用,两个阶段都阻塞,那区别在哪里呢?就在于第三节讲述的Selector,虽然第一阶段都是阻塞,但是阻塞式I/O如果要接收更多的连接,就必须创建更多的线程。I/O复用模式下在第一个阶段大量的连接统统都可以过来直接注册到Selector复用器上面,同时只要单个或者少量的线程来循环处理这些连接事件就可以了,一旦达到“就绪”的条件,就可以立即执行真正的I/O操作。这就是I/O复用与传统的阻塞式I/O最大的不同。也正是I/O复用的精髓所在。

避免连接多了之后线程切换巨大开销
 
 https://blog.csdn.net/woaixiaopangniu521/article/details/70279143
 

IO多路复用模型使用了Reactor设计模式实现了这一机制。

异步IO模型使用了Proactor设计模式实现了这一机制。

技术分享图片

 

https://www.aliyun.com/jiaocheng/792562.html

这篇文章阐述了同步阻塞的区别

 


以上是关于5种io模型摘要的主要内容,如果未能解决你的问题,请参考以下文章

5种网络I/O模型

7.3 5种IO模型与IO复用

5种IO模型阻塞IO和非阻塞IO同步IO和异步IO

5种网络IO模型(有图,很清楚)

轻松搞懂5种IO模型

Linux五种IO模型