IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 《Java I/O 模型》Java AIO -> 正文阅读

[Java知识库]《Java I/O 模型》Java AIO

《Java I/O 模型》专栏文章索引
👉《Java I/O 模型》Java BIO
👉《Java I/O 模型》Java NIO
👉《Java I/O 模型》Java AIO

📜在之前的两篇博客中,我们分别学习了传统的 Java BIO 和当今使用比较多的 Java NIO,那么最后一个阶段再简单了解一下 Java AIO 吧(由于种种原因,目前 Java AIO 使用的并不是很多,因此暂且简单的介绍一下)。

📙Java AIO(Asychronous I/O) 即 Java 异步非阻塞 I/O,JDK 1.7 开始支持,它是对 JDK1.4 中提出的同步非阻塞I/O(NIO) 的进一步增强。服务器实现模式为一个有效请求一个线程,客户端的 I/O 请求都是由操作系统先完成,完成之后再通知服务端应用去启动线程进行处理。它是基于 NIO 模式,因此又被称为 NIO 2.0.

📕简单地说,在 Java AIO 模式下:客户端发起请求之后不需要等待服务端响应可以做其他的事情,服务端处理完之后会将处理结果通知客户端,客户端这个时候会到指定的缓存区获取数据。

🎉Java AIO 虽然是基于 Java NIO 的,但是与 Java NIO 又有些不同

  • 🧨对于读操作而言,当有流可读时,操作系统会将可读的流传入 read 方法的缓存区。
  • 🧨对于写操作而言,当操作系统将 write 方法传递的流写入完毕时,操作系统主动通知应用程序。
  • 🧨因此,read/write 方法都是异步的,完成后会主动调用回调函数。

🎉在 Java AIO 中通道(Channel) 的接口是异步的,主要有四个异步通道

  • 🧨AsychronousSocketChannel
  • 🧨AsychronousServerSocketChannel
  • 🧨AsynchronousFileChannel
  • 🧨AsynchronousDatagrmChannel

🎉BIO、NIO、AIO 使用场景对比

  • 🧨BlO 模式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中, JDK1.4 以前的唯一选择,但程序直观简单易理解。
  • 🧨NIO 模式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1 .4 开始支持。
  • 🧨AlO 方式使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用操作系统参与并发操作,编程比较复杂,JDK1.7 开始支持。
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:26:14  更:2022-05-09 12:28:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:02:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码