美文网首页
网络IO模型

网络IO模型

作者: 飞哈飞 | 来源:发表于2020-11-01 01:00 被阅读0次

什么是同步?
A调用B,B完成了所有的操作才返回。
什么是阻塞?
网络IO读写时,没有数据则会阻塞当前线程,使当前线程为挂起状态。

同步阻塞IO:
用户程序调用系统read,如果没有数据则会阻塞当前线程,等待有数据之后才会唤醒线程。
内核完成数据复制操作才会返回;
socket为阻塞类型。

同步非阻塞IO:
用户程序调用系统read,如果没有数据则会立即返回失败,不会阻塞当前线程。
线程不停轮询调用,直到有数据的时候内核完成数据复制操作才会返回
socket为非阻塞类型。

IO多路复用:
线程同时轮询监控多个IO文件,返回可以读取数据的socket,用户线程再读取数据。
基础是Linux的select/epoll查询。
与同步非阻塞IO相比区别在于单线程可以同时监控多个socket,而同步非阻塞IO只能作用于一个。
JAVA的NIO就是这种类型。

异步IO:
用户线程调用时,向操作系统注册自己的回调函数。
内核完成了数据准备就通知用户线程,或者调用用户线程注册的回调函数。
Linux目前尚不完善

相关文章

  • 1.Nette入门第一章——IO演进

    1. IO 基础 1.1. linux网络IO模型 阻塞IO模型 非阻塞IO模型 IO多路复用模型(NIO) 信...

  • 网络IO模型

    网络IO的模型大致包括下面几种 同步模型(synchronous IO)阻塞IO(bloking IO)非阻塞IO...

  • 【Netty开发指南】搭稳Netty开发的地基

    Linux网络编程5种IO模型 根据UNIX网络编程对于IO模型的分类,UNIX提供了5种IO模型,分别是 阻塞I...

  • linux select/epoll

    一、Unix/Linux网络IO模型在经典的Unix网络编程中,总结出了5种不同的网络IO模型,分别是阻塞式IO,...

  • IO 模型实现

    基本 IO 模型 IO 模型 传统的 CS 网络模型 虚线标识网络连接的建立,实线表示链接建立后的请求/响应。 多...

  • 网络io模型

    对于io模型这块内容之前基本完全没有接触过,有了些许了解之后还是很困昏,select、poll、epoll的关系以...

  • 网络IO模型

    文章内容来源于:https://segmentfault.com/a/1190000003063859?utm_s...

  • 网络IO模型

    2. unix网络编程5种IO模型 linux 的内核将所有外部设备都可以看做一个文件来操作,我们对外部设备的操作...

  • 网络IO模型

    什么是同步?A调用B,B完成了所有的操作才返回。什么是阻塞?网络IO读写时,没有数据则会阻塞当前线程,使当前线程为...

  • 网络IO模型

    内核空间与用户空间 操作系统内核 可以访问受保护的内存空间,拥有访问底层硬件设备的所有权限。 为了保护内核的安全,...

网友评论

      本文标题:网络IO模型

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