美文网首页
网络 I/O 模型的演进

网络 I/O 模型的演进

作者: FlySheep_ly | 来源:发表于2017-03-24 08:40 被阅读14次

一、同步和异步

同步和异步描述的是用户线程与内核的交互方式:

  • 同步是指用户线程发起 I/O 请求后需要等待或者轮询内核 I/O 操作完成后才能继续执行;
  • 异步是指用户线程发起 I/O 请求后仍继续执行,当内核 I/O 操作完成后会通知用户线程,或者调用用户线程注册的回调函数。

二、阻塞和非阻塞

阻塞和非阻塞描述的是用户线程调用内核 I/O 操作的方式:

  • 阻塞是指 I/O 操作需要彻底完成后才返回到用户空间;
  • 非阻塞是指 I/O 操作被调用后立即返回给用户一个状态值,无须等待 I/O 操作彻底完成。
      一个 I/O 操作其实分成了两个步骤:发起 I/O 请求和实际的 I/O 操作。
      阻塞 I/O 和非阻塞 I/O 的区别在于第一步,发起 I/O 请求是否会被阻塞,如果阻塞直到完成那么就是传统的阻塞 I/O,如果不阻塞,那么就是非阻塞 I/O。
      同步 I/O 和异步 I/O 的区别就在于第二个步骤是否阻塞,如果实际的 I/O 读写阻塞请求进程,那么就是同步 I/O。

相关文章

  • 网络 I/O 模型的演进

    一、同步和异步 同步和异步描述的是用户线程与内核的交互方式: 同步是指用户线程发起 I/O 请求后需要等待或者轮询...

  • Java NIO之Reactor和Preactor模型

    1、基础I/O模型 在《UNIX网络编程》中介绍了5中I/O模型:阻塞I/O、非阻塞I/O、I/O复用、SIGIO...

  • Java I/O 模型的演进

    什么是同步?什么是异步?阻塞和非阻塞又有什么区别?本文先从 Unix 的 I/O 模型讲起,介绍了5种常见的 I/...

  • Netty入门笔记

    知识点:Reactor模式 一、Linux网络I/O模型简介 1.阻塞I/O模型:开始I/O操作时直到数据...

  • Select 模型简介

    多路复用I/O 在简明网络I/O模型文章可以知道常用的IO模型。其中同步模型中,使用多路复用I/O可以提高服务器的...

  • Netty 权威指南笔记(一):网络 I/O 模型和 Java

    Netty 权威指南笔记(一):网络 I/O 模型和 Java IO 入门 Java I/O 模型的实现离不开底层...

  • Netty学习 - 从TCP服务器到I/O模型

    学习Netty就不得不从TCP服务器和I/O模型说起,了解TCP服务器架构和I/O模型的演进有助于深入了解Nett...

  • Linux I/O模型的前世今生

    Linux I/O模型 阻塞式I/O模型 非阻塞式I/O模型 I/O复用式模型 信号驱动式I/O模型 异步I/O模...

  • Netty理论一:Java IO与NIO

    1、Linux IO模型 1、《Unix网络编程》把I/O模型分成五类阻塞式I/O模型:整个过程都是阻塞的——BI...

  • netty

    I/O 模型 阻塞I/O模型(BIO) 非阻塞I/O模型 I/O复用模型(select/poll;epoll)se...

网友评论

      本文标题:网络 I/O 模型的演进

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