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)

在这里插入图片描述

小结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/192427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis缓存的使用

什么是缓存 缓存就是数据交换的缓冲区,是存储数据的临时地方,一般读写性能较高。 缓存的作用: 降低后端负载提高读写效率,降低响应时间 缓存的成本: 数据一致性成本代码维护成本运维成本 Redis特点 键值型数据库…

Qt面试题

1.QT信号槽机制的优缺点 优点: 1.类型安全:需要关联的信号槽的签名必须是等同的,即信号的参数类型和参数个数和接受该信号的槽的参数类型和参数个数相同。(PS:信号函数的参数个数必须大于等于槽函数的参数个数) 2.松…

Spring 框架容器管理注解和生命周期

Spring 注解 在 Spring 框架中,大量的注解是由 Spring 容器(而不是虚拟机)进行处理和解析的。Spring 框架使用了反射和自定义的处理机制来解析注解,并根据注解的定义执行相应的逻辑。 Spring 框架中的注解主要用于配置和控制应用…

C语言之结构体

一.前言引入. 我们知道在C语言中有内置类型,如:整型,浮点型等。但是只有这些内置类 型还是不够的,假设我想描述学⽣,描述⼀本书,这时单⼀的内置类型是不⾏的。描述⼀个学⽣需要名字、年龄、学号、⾝⾼、体…

Spark经典案例分享

Spark经典案例 链接操作案例二次排序案例 链接操作案例 案例需求 数据介绍 代码如下: package base.charpter7import org.apache.hadoop.conf.Configuration import org.apache.hadoop.fs.{FileSystem, Path} import org.apache.spark.SparkContext import org.a…

四、Zookeeper节点类型

目录 1、临时节点 2、永久节点 Znode有两种,分别为临时节点和永久节点。 节点的类型在创建时即被确定,并且不能改变。 1、临时节点 临时节点的生命周期依赖于创建它们的会话。一旦会话结束,临时节点将被自动删除,

OpenCV-Python:计算机视觉介绍

目录 1.背景 2.计算机视觉发展历史 3.计算机视觉主要任务 4.计算机视觉应用场景 5.知识笔记 1.背景 OpenCV是计算机视觉的一个框架,想要学习OpenCV,需要对计算机视觉有一个大致的了解。计算机视觉是指通过计算机技术和算法来模拟人类视觉系统的能力…

Redis高效缓存:加速应用性能的利器

目录 引言 1. Redis概述 1.1 什么是Redis? 1.2 Redis的特点 2. Redis在缓存中的应用 2.1 缓存的重要性 2.2 Redis作为缓存的优势 2.3 缓存使用场景 3. Redis在实时应用中的应用 3.1 实时数据处理的挑战 3.2 Redis的实时数据处理优势 3.3 实时应用中的Red…

整数转罗马数字算法(leetcode第12题)

题目描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 50…

mediapipe+opencv实现保存图像中的人脸,抹去其他信息

mediapipeopencv MediaPipe本身不提供图像处理功能,它主要用于检测和跟踪人脸、手势、姿势等。如果您想要从图像中仅提取人脸主要信息并去除其他信息. # codingutf-8 """project: teatAuthor:念卿 刘file: test.pydate&…

Kubernetes学习笔记-Part.09 K8s集群构建

目录 Part.01 Kubernets与docker Part.02 Docker版本 Part.03 Kubernetes原理 Part.04 资源规划 Part.05 基础环境准备 Part.06 Docker安装 Part.07 Harbor搭建 Part.08 K8s环境安装 Part.09 K8s集群构建 Part.10 容器回退 第九章 K8s集群构建 9.1.集群初始化 集群初始化是首…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《余电上网/制氢方式下微电网系统全生命周期经济性评估》

该标题涉及到对微电网系统的全生命周期经济性进行评估,其重点关注两种运营方式:余电上网和制氢。以下是对标题的解读: 微电网系统: 微电网是指一种小规模的电力系统,通常包括分布式能源资源(如太阳能、风能…

TS数据类型(全)

TS支持和JS几乎相同的数据类型,此外还提供了实用的枚举类型 总结:ts中变量一开始是什么类型,那么后期赋值的时候,只能用这个类型的数据,是不允许用其他类型的数据赋值给当前的这个变 量中。 数字类型(numbe…

ES通过抽样agg聚合性能提升3-5倍

一直以来,es的agg聚合分析性能都比较差(对应sql的 group by)。特别是在超多数据中做聚合,在搜索的条件命中特别多结果的情况下,聚合分析会非常非常的慢。 一个聚合条件:聚合分析请求的时间 search time a…

DIV从不能移动变成随便定位(静态+编程)的方法

编了一个游戏测试小网页&#xff0c;竟然发现DIV不能随便移动&#xff0c;查了半天终于解决了静态和编程定位的问题。特别记录一下。 <div οnmοusedοwn"mDown(this)" οnmοuseup"mUp(this)" style"background-color: #D94A38; position: abso…

部署springboot项目到GKE(Google Kubernetes Engine)

GKE是 Google Cloud Platform 提供的托管 Kubernetes 服务&#xff0c;允许用户在 Google 的基础设施上部署、管理和扩展容器。本文介绍如何部署一个简单的springboot项目到GKE. 本文使用podman. 如果你用的是docker, 只需要把本文中所有命令中的podman替换成docker即可 非H…

LeetCode [中等]二叉树的右视图(层序

199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 从二叉树的层序遍历改进&#xff0c;根右左 /*** Definition for a binary tree node.* public class TreeNode {* public int val;* public TreeNode left;* public TreeNode right;* public T…

MiniDumpWriteDump函数生成dmp文件

MiniDumpWriteDump函数生成dmp文件 一&#xff1a;概述二&#xff1a; CreateDump.h三&#xff1a;CreateDump.cpp四&#xff1a;main测试五&#xff1a;winDbg分析 一&#xff1a;概述 v2008及以上版本都可以用。 包含CreateDump.h&#xff0c;CreateDump.cpp文件&#xff0c…

Linux: FS: inotify

这个和网卡的event-notify是一样的逻辑,内核看到有什么事情发生,可以通知到用户,然后用户可以根据自己的需求做一些处理。第一次看到,记录一下算是可以日后可以用到的功能。 man inotify。 inotify - monitoring filesystem events 描述: The inotify API provides a mec…

java+springboot物资连锁仓库经营商业管理系统+jsp

主要任务&#xff1a;通过网络搜集与本课题相关的素材资料&#xff0c;认真分析连锁经营商业管理系统的可行性和要实现的功能&#xff0c;做好需求分析&#xff0c;确定该系统的主要功能模块&#xff0c;依据数据库设计的原则对数据库进行设计。最后通过编码实现本系统功能并测…