当前位置: 首页 > news >正文

NIO--07--Java lO模型详解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 何为 IO?
    • 先从计算机结构的角度来解读一下I/o.
    • 再从应用程序的角度来解读一下I/O
  • 阻塞/非阻塞/同步/异步IO
    • 阻塞IO
    • 非阻塞IO
    • 异步IO
    • 举例
  • Java中3种常见的IO模型
    • BIO (Blocking l/o)
    • NIO (Non-blocking/New lo)
    • I/O多路复用模型
    • AIO (Asynchronous l/o)
    • 小结


何为 IO?

l/o (Input/Outpu)即输入/输出

先从计算机结构的角度来解读一下I/o.

在这里插入图片描述

再从应用程序的角度来解读一下I/O

在这里插入图片描述

UNIX系统下,IO模型一共有5种:同步阻塞V/O、同步非阻塞V/O、I/O多路复用、信号驱动I/O和异步I/O。

阻塞/非阻塞/同步/异步IO

阻塞IO

在这里插入图片描述

非阻塞IO

在这里插入图片描述
在这里插入图片描述

异步IO

在这里插入图片描述

举例

在这里插入图片描述

Java中3种常见的IO模型

NIO–01–BIO,NIO,AIO简介

  • 同步阻塞的BIO
  • 同步非阻塞的NIO
  • 异步非阻塞的AIO

BIO (Blocking l/o)

在这里插入图片描述

NIO (Non-blocking/New lo)

在这里插入图片描述
在这里插入图片描述

I/O多路复用模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

AIO (Asynchronous l/o)

在这里插入图片描述

小结

在这里插入图片描述
在这里插入图片描述

相关文章:

  • 如何打印社保参保凭证
  • python之pyqt专栏5-信号与槽1
  • 钉钉聊天审计软件有哪些
  • web前端之vue3
  • cyclictest 交叉编译与使用
  • 【ArcGIS Pro微课1000例】0040:ArcGIS Pro创建北极点、南极点
  • 公平锁和非公平锁以及他们的实现原理是什么
  • YOLOv5算法进阶改进(7)— 将主干网络SPPF更换为SimSPPF / SPP-CSPC / SPPF-CSPC
  • node.js-连接SQLserver数据库
  • 谨慎Apache-Zookeeper-3.5.5以后在CentOS7.X安装的坑
  • 程序员学习方法
  • Hdoop学习笔记(HDP)-Part.19 安装Kafka
  • Elasticsearch-Kibana使用教程
  • Vue中mvvm的作用
  • 「Verilog学习笔记」自动贩售机2
  • [笔记] php常见简单功能及函数
  • 3.7、@ResponseBody 和 @RestController
  • 30秒的PHP代码片段(1)数组 - Array
  • Angular2开发踩坑系列-生产环境编译
  • ES6系统学习----从Apollo Client看解构赋值
  • Git初体验
  • Java面向对象及其三大特征
  • JSONP原理
  • JS专题之继承
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • rc-form之最单纯情况
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Terraform入门 - 1. 安装Terraform
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 欢迎参加第二届中国游戏开发者大会
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 排序(1):冒泡排序
  • 扑朔迷离的属性和特性【彻底弄清】
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • 整理一些计算机基础知识!
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​第20课 在Android Native开发中加入新的C++类
  • #ifdef 的技巧用法
  • #include<初见C语言之指针(5)>
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #Lua:Lua调用C++生成的DLL库
  • #pragma once
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (1)Android开发优化---------UI优化
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (推荐)叮当——中文语音对话机器人
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (原)Matlab的svmtrain和svmclassify
  • (转) ns2/nam与nam实现相关的文件
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)