Nginx IO模型

本文详细介绍了Nginx的IO模型,包括同步/异步、阻塞/非阻塞的概念,以及同步阻塞、同步非阻塞、IO多路复用、信号驱动IO和异步IO模型的解释。重点讨论了IO多路复用模型,特别是epoll的特性,阐述了其在Nginx中的应用。
摘要由CSDN通过智能技术生成

Nginx的io复用模型

1. I/O模型简介

  • 同步/异步: 关注的是消息通信机制
    • 同步: synchronous, 被调用者等待被调用者返回消息, 才能继续执行
    • 异步: asynchronous, 被调用者通过状态/通知或回调机制主动通知调用者被调用者的运行状态
  • 阻塞/非阻塞:关注调用者在等待结果返回之前所处的状态
    • 阻塞: blocking, 指I/O操作需要彻底完成后才能返回到用户空间, 调用结果返回之前, 调用者被挂起
    • 非阻塞: nonblocking, 值I/O操作被调用后立即返回给用户一个状态值, 无需等到IO操作彻底完成, 最终的调用结果返回之前, 调用者不会被挂起
  • 生产中常用I/O 模型
    • 阻塞型, 非阻塞型, 复用型, 信号驱动型, 异步
      在这里插入图片描述

2. I/O模型详解

2-1. 同步阻塞IO模型

在这里插入图片描述

  • 同步阻塞IO模型是组件但的IO模型, 用户线程在内核进行IO操作时被阻塞
  • 用户线程通过系统调用read发起IO读操作, 由用户空间转到内核空间,内核等到数据包到达后, 然后将接收到数据拷贝到用户空间, 完成read操作
  • 用户需要等待read将数据读取到buffer后
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

icmll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值