JAVA常见IO模型 BIO、NIO、AIO总结

BIO

Blocking IO 同步阻塞型IO。当系统进行IO读写的时候,会阻塞,直到IO读写完毕。比如调用系统Read后,需要将内核空间的数据读取到用户空间。需要等待内核空间 数据准备,数据就绪,拷贝数据,线程一直处于阻塞状态,直到拷贝数据完成。如下图:
在这里插入图片描述
BIO这种方式是一个连接对应着一个线程,会造成线程阻塞。当连接数目少的时候还能支撑住,当连接数一多会导致阻塞时间过程,影响系统的性能。因此阻塞型IO只是用于少量连接的情况。
为了使用大量连接的情况,又设计了非阻塞型IO-NIO模型。

NIO

NIO同步非阻塞型IO,系统在进行读写的过程中不会阻塞,系统性能更高。非阻塞型IO采用了多路复用的原理,将多个连接注册到一个selector上,通过一个线程就能管理多个连接。通过selector轮询的方式看那个连接上有请求,对该请求分配一个线程。这样就大大提高的效率。
在这里插入图片描述

非阻塞型IO特别适用于连接数目多,且连接时间较短的常用,比如聊天服务器。

AIO

AIO为异步IO。异步IO是基于事件和回调机制来实现的。当应用程序发起IO请求后,立马返回,可以进行其他操作。当系统IO完成后,会通知该线程,该线程继续执行之后的操作。
在这里插入图片描述
目前AIO应用不是很广泛。

总结

在这里插入图片描述
参考:
https://javaguide.cn/java/io/io-model.html#aio-asynchronous-i-o
https://blog.csdn.net/Shangxingya/article/details/110489318

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

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

相关文章

CSS之重绘与回流

重绘(Repaint) 当页面中元素样式的改变并不影响它在文档流中的位置时(例如改变颜色、阴影等),浏览器会进行重绘,即重新绘制元素的外观。 回流(Reflow) 当元素的大小、位置、隐藏等…

IO进程:fread\fwrite图像拷贝,read\write文件拷贝,时间函数

1.使用fread、fwrite实现图片拷贝 程序代码&#xff1a; 1 #include<myhead.h>2 int main(int argc, const char *argv[])3 {4 //判断传入文件个数5 if(argc!3)6 {7 printf("input file error\n");8 printf("usage:./a.out …

【QCA6174】SDX12+QCA6174驱动屏蔽120/124/128信道修改方案

SDX12基线版本 SDX12.LE.1.0-00215-NBOOT.NEFS.PROD-1.39743.1 问题描述 对于欧洲国家来说,默认支持DFS信道,但是有三个信道比较特殊,是天气雷达信道,如下图所示120、124、128,天气雷达信道有个特点就是在信号可以发射之前需要检测静默15min,如果信道自动选择到了天气雷达…

情感分析入门:使用Python和TextBlob进行情感分析

简介 情感分析是自然语言处理领域的一个重要任务&#xff0c;它涉及分析文本中的情感和情绪&#xff0c;如积极、消极、中性等。TextBlob是一个简单易用的自然语言处理工具库&#xff0c;其中包含了情感分析功能。本文将介绍如何使用Python编程语言和TextBlob库进行情感分析&a…

洪泛法:计算机网络中的信息洪流——原理、优化与应用全景解析

洪泛法 - 概述 洪泛法&#xff08;Flooding&#xff09;是计算机网络中一种简单直接的数据传输技术。它不依赖于网络中的路由表或者路径选择算法。在洪泛法中&#xff0c;每个接收到消息的节点将消息复制并发送给除了消息来源外的所有其他节点。这个过程一直重复&#xff0c;直…

GB/T 29418-2023 塑木复合材料挤出型材性能检测

塑木复合材料是指由木质或其他纤维素基材料和热塑性塑料经配混成型加工制成的复合材料&#xff0c;又称为木塑复合材料&#xff0c;塑木复合材料多用于木塑地板&#xff0c;围栏等产品&#xff0c;用于户外花园&#xff0c;公园等场所。 GB/T 29418-2023 塑木复合材料挤出型材…

微信多开(无需关闭软件)优化

C实现微信多开 原理 解除mutex独占 同时改用新的API&#xff0c;不再使用废弃的windows API 源码 #include <aclapi.h> #include <shlwapi.h> #include <windows.h> #include <iostream> #pragma comment(lib, "Shlwapi.lib")static bo…

BI 数据分析,数据库,Office,可视化,数据仓库

AIGC ChatGPT 职场案例 AI 绘画 与 短视频制作 PowerBI 商业智能 68集 Mysql 8.0 54集 Oracle 21C 142集 Office 2021实战应用 Python 数据分析实战&#xff0c; ETL Informatica 数据仓库案例实战 51集 Excel 2021实操 100集&#xff0c; Excel 2021函数大全 80集 Excel 2021…

【Java代码洁癖】NO.1 集合创建冗余,不能忍

反例 public Collection<String> sort(Collection<String> foos){List<String> sortedFoos new ArrayList<>(foos);Collection.sort(sortedFoos);return sortedFoos; } 正例 public Collection<String> sort(Collection<String> foos)…

阿里云服务器镜像选择方法详解,这么选就对了!

阿里云服务器镜像怎么选择&#xff1f;云服务器操作系统镜像分为Linux和Windows两大类&#xff0c;Linux可以选择Alibaba Cloud Linux&#xff0c;Windows可以选择Windows Server 2022数据中心版64位中文版&#xff0c;阿里云服务器网aliyunfuwuqi.com来详细说下阿里云服务器操…

HarmonyOS 鸿蒙应用开发(十一、面向鸿蒙开发的JavaScript基础)

ArkTS 是HarmonyOS&#xff08;鸿蒙操作系统&#xff09;原生应用开发的首选语言。它是用于构建用户界面的一种TypeScript方言&#xff0c;扩展了TypeScript以适应HarmonyOS生态系统的UI开发需求。ArkTS 融合了TypeScript的静态类型系统和现代UI框架的设计理念&#xff0c;为开…

练习题解(关于最短路径)

目录 1.租用游艇 2.邮递员送信 3.【模板】单源最短路径&#xff08;标准版&#xff09; 1.租用游艇 P1359 租用游艇 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 输入数据&#xff1a; 3 5 15 7 因为这道题数据不大&#xff0c;所有我们直接使用Floyd 算法。 这道题大…

Linux系统——防火墙Firewalld

目录 一、firewalld介绍 1.归入zone顺序 2.firewalld zone分类 3.预定义服务 二、图形化操作 1.打开firewalld图形化界面 2.以http服务为例&#xff0c;打开httpd服务 3.修改端口号 三、命令行配置 1.基础配置 2.查看现有firewalld设置 3.设置查看默认区 4.添加源…

字符编码处理相关工具类

目录 1. Base64工具类 -- Base64 2. Md5加密方法 -- Md5Utils 1. Base64工具类 -- Base64 /*** Base64工具类* */ public final class Base64 {static private final int BASELENGTH 128;static private final int LOOKUPLENGTH 64;static p…

SpringBoot返回JSON数据是少8小时

问题 数据库保存时间是北京时区查询出来的和数据库中保存的时间一样是北京时区的经过SpringMVC转换为JSON字符串后少了8个小时 解决 在实体类时间属性上使用 JsonFormat(pattern “yyyy-MM-dd HH:mm:ss”, timezone “GMT8”) &#xff0c;未生效在application.properties…

类(接口)图几种箭头含义

导语 在平时的开发中&#xff0c;难免会遇到画UML图的时候&#xff0c;也就是我们所说的类图&#xff0c;但是UML图中的箭头多种多样&#xff0c;所代表的含义也是各不相同&#xff0c;今天我们就来说说这几种箭头所代表的含义。 1 泛化 概念&#xff1a;泛化表示一个更泛化的元…

CTFshow web(php命令执行 55-59)

web55 <?php /* # -*- coding: utf-8 -*- # Author: Lazzaro # Date: 2020-09-05 20:49:30 # Last Modified by: h1xa # Last Modified time: 2020-09-07 20:03:51 # email: h1xactfer.com # link: https://ctfer.com */ // 你们在炫技吗&#xff1f; if(isset($_GET[…

Windows 命令提示符(CMD)操作(二):系统信息和管理

二、系统信息和管理 2.1 systeminfo 显示系统信息 一般语法&#xff1a; systeminfo [/s <hostname>] [/u <username> [/p [<password>]]] [/fo {TABLE | LIST | CSV}] [/nh]其中&#xff0c;常见的选项包括&#xff1a; /s <hostname>&#xff1…

Jetpack 之Glance+Compose实现一个小组件

Glance&#xff0c;官方对其解释是使用 Jetpack Compose 样式的 API 构建远程 Surface 的布局&#xff0c;通俗的讲就是使用Compose风格的API来搭建小插件布局&#xff0c;其最新版本是2022年2月23日更新的1.0.0-alpha03。众所周知&#xff0c;Compose样式的API与原生差别不小&…

Android逆向学习(七)绕过root检测与smali修改学习

Android逆向学习&#xff08;七&#xff09;绕过root检测与smali修改学习 一、写在前面 这是吾爱破解正己大大教程的第五个作业&#xff0c;然后我的系统还是ubuntu&#xff0c; 这个是剩下作业的完成步骤。 二、任务目标 现在我们已经解决了一些问题&#xff0c;现在剩下的…