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

NIO简单介绍

一、什么是NIO

1、Java NIO全称java non-blocking IO, 是指JDK提供的新API。从JDK1.4开始,Java提供了一系列改进的输入/输出的新特性,被统称为NIO(即New IO),是同步非阻塞的

2、NIO有三大核心部分: Channel(通道), Buffer(缓冲区),Selector(选择器)

3、NIO是面向缓冲区,或者面向块编程的。数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动,这就增加了处理过程中的灵活性,使用它可以提供非阻塞式的高伸缩性网络。

二、NIO 与BIO 模型对比

BIO 是同步阻塞IO,服务器的模式是一个线程处理一个请求,当无响应时,会阻塞线程

NIO 同步非阻塞IO,会有一个Selector管理多个线程,当有事件发生后,进行处理、不会发生阻塞

三、NIO 与BIO的差异

1、BIO 以流的方式处理数据,而NIO以块的方式处理数据,块I/O 的效率比流I/O高很多

2、BIO 是阻塞的,NIO则是非阻塞的

3、BIO基 于字节流和字符流进行操作,而NIO 基于Channel(通道)和Buffer(缓冲区)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。Selector(选择器)用于监听多个通道的事件(比如:连接请求,数据到达等),因此使用单个线程就可以监听多个客户端通道

http://www.lryc.cn/news/173814.html

相关文章:

  • linux进程杀不死
  • 5分钟带你搞懂RPA到底是什么?RPA能做什么?
  • 毫米波雷达 TI IWR1443 在 ROS 中进行 octomap 建图
  • 113双周赛
  • React 全栈体系(九)
  • 阈值化分割,对灰度级图像进行二值化处理(数字图像处理大题复习 P8)
  • vue3中withDefaults是什么
  • Android进阶之路 - 盈利、亏损金额格式化
  • 工业蒸汽量预测(速通一)
  • 机器学习的主要内容
  • 华为OD机试真题-分积木-2023年OD统一考试(B卷)
  • SpringBoot自动装配原理及分析
  • Android开发笔记 :理解Fragment
  • std::chrono获取当前秒级/毫秒级/微秒级/纳秒级时间戳
  • sh文件介绍及linux下执行
  • js-cookie使用 js深度克隆(判断引用类型是数组还是对象的方法)
  • [Pytorch]语义分割任务分类的实现
  • 测试网页调用本地可执行程序(续:带参数调用)
  • Carla自动驾驶模拟器安装和使用
  • 【每日一题】1539. 第 k 个缺失的正整数
  • AI-Chat,一款集全网ai功能的应用(附下载链接)
  • 3、靶场——Pinkys-Place v3(3)
  • 什么是 AirServer?Mac专用投屏工具AirServer 7 .27 for Mac中文破解版百度网盘下载
  • MapStruct介绍以及VO、DTO、PO、DO的区别
  • 记一次hyperf框架封装swoole自定义进程
  • 多输入多输出 | MATLAB实现GA-BP遗传算法优化BP神经网络多输入多输出
  • 李宏毅机器学习笔记-transformer
  • 基于Java的酒店管理系统
  • Go语言的单元测试与基准测试详解
  • 【多态】为什么析构函数的名称统一处理为destructor?