I/O复用模型详解

Posted

tags:

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

一.httpd工作模型

prefork:进程模型,两级结构,主进程master负责生成子进程,每个子进程负责响应一个请求

worker:线程模型,三级结构,主进程master负责生成子进程,每个子进程负责生成多个线程,每个线程相应一个请求

event:线程模型,三级结构,主进程master负责生成子进程,每个子进程响应多个请求

二.I/O模型名词概念

同步/异步:关注的是消息通信机制

同步:synchronous,调用者等待被调用者返回信息,才能继续执行
异步:asynchronous,被调用者通过状态、通知或回调机制主动通知调用者被调用者的运行状态

阻塞/非阻塞:关注调用者在等待结果返回之前所处的状态

阻塞:blocking,指IO操作需要彻底完成之后才返回到用户空间,调用结果返回之前,调用者被挂起

非阻塞:nonblocking,指IO操作被调用后立即返回给用户一个状态值,无需等到IO操作彻底完成,最终的调用结果返回之前,调用者不会被挂起

I/O模型:阻塞型、非阻塞型、复用型、信号驱动型、异步

三.五种I/O复用模型详解
1.同步阻塞
技术分享图片

技术分享图片

2.同步非阻塞
技术分享图片

技术分享图片

3.IO多路复用模型
技术分享图片

技术分享图片

多路复用模型使用场景
技术分享图片

4.信号驱动IO模型
技术分享图片

技术分享图片

5.异步非阻塞模型
技术分享图片

技术分享图片

五.种I/O复用模型对比
技术分享图片

六.IO模型的具体实现方式对比

以上是关于I/O复用模型详解的主要内容,如果未能解决你的问题,请参考以下文章

I/O多路复用之——epoll原理详解及epoll反应堆(Reactor)模型

网络I/O模型--05多路复用I/O

I/O复用

从网络I/O模型到Netty,先深入了解下I/O多路复用

I/O复用 select和poll

Java基础:I/O多路复用模型及Linux中的应用