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

Java I/O 模型精讲:从传统BIO到高性能NIO与AIO

一、IO基础概念

1.1、传统的 IO 大致可以分为4种类型:

  • InputStream、OutputStream 基于字节操作的 IO
  • Writer、Reader 基于字符操作的 IO
  • File 基于磁盘操作的 IO
  • Socket 基于网络操作的 IO

1.2、BIO、NIO、AIO区别

IO名称

特点

描述

BIO

阻塞、同步

优点:代码简单,直观,缺点:效率与扩展性低

NIO

支持多路复用,非阻塞、同步

更接近操作系统底层高性能的数据操作方式

AIO

非阻塞、异步

基于事件和回调机制实现

1.3、同步、异步、阻塞、非阻塞

同步与异步:

是针对于任务与任务之间的关系,同步就是一个任务依赖另一个任务时,等被依赖的任务执行完成之后,依赖的任务才可以执行;而异步不需要等被依赖任务执行完成,只需要给他通知任务,之后依赖任务也立即执行;

阻塞与非阻塞:

主要针对于CPU消耗,阻塞就是CPU先把第一个线程执行完,再执行第二个线程;非阻塞就是在第一个线程执行时,会切换线程,做其他事情,当第一个线程执行完,会切换回来继续执行后续操作;虽然提高了CPU的利用率,但是增加了系统频繁切换线程的压力。

http://www.dtcms.com/a/339490.html

相关文章:

  • uv与conda的区别及选择指南
  • Linux软件编程:进程与线程(进程(消息队列、共享内存、信号灯))
  • 决策树二-泰坦尼克号幸存者
  • 微服务集训整理
  • AI赋能市场拓展:从智能潜力洞察到渠道精准深耕,解锁商业增长新蓝海
  • 【Proteus仿真】【51单片机】基于51单片机密码锁
  • 优秘企业智脑 AISEO 实战:如何通过多模态大模型提升搜索引擎排名?附 3 大行业案例
  • pytorch学习笔记-argparse的使用(加更版)
  • 基于SpringBoot+Vue的写真馆预约管理系统(邮箱通知、WebSocket及时通讯、协同过滤算法)
  • 哪些仪器适合对接电子实验记录本,哪些不适合?
  • Java 11中的Collections类详解
  • Web安全攻防基础
  • 什么是IP隔离?一文讲清跨境电商/海外社媒的IP隔离逻辑
  • JVM对象创建和内存分配
  • 2025年12大AI测试自动化工具
  • 基礎複分析習題6.級數與乘積展開
  • 广东省省考备考(第八十一天8.19)——资料分析、数量(强化训练)
  • MVC、MVP、MVCC 和 MVI 架构的介绍及区别对比
  • 面试题储备-MQ篇 2-说说你对RocketMQ的理解
  • 基于WebSocket和SpringBoot聊天项目ChatterBox测试报告
  • 怎样平衡NLP技术发展中数据质量和隐私保护的关系?
  • 中科米堆CASAIM自动化三维测量设备测量汽车壳体直径尺寸
  • 多模态大模型应用落地:从图文生成到音视频交互的技术选型与实践
  • 5.1Pina介绍
  • 进程间的通信(管道,信号)
  • 知行社:以爱之名,共筑公益梦想
  • Podman:Mysql(使用卷)
  • 【Goland】:面向对象编程
  • Day 29 类的装饰器
  • 如何将任意文件一键转为PDF?