java 中 IO 的流的种类及BIO、NIO、AIO 有什么区别?
文章目录
- java 中 IO 流分为几种?
- BIO、NIO、AIO 有什么区别?
java 中 IO 流分为几种?
(1)按流划分,可以分为输入流和输出流;
(2)按单位划分,可以分为字节流和字符流;
字节流:inputStream、outputStream;
字符流:reader、writer;
BIO、NIO、AIO 有什么区别?
(1)同步阻塞BIO
一个连接一个线程。
JDK1.4之前,建立网络连接的时候采用BIO模式,先在启动服务端socket,然后启动客户端socket,对服务端通信,客户端发送请求后,先判断服务端是否有线程响应,如果没有则会一直等待或者遭到拒绝请求,如果有的话会等待请求结束后才继续执行
。
(2)同步非阻塞NIO
NIO主要是想解决BIO的大并发问题
,BIO是每一个请求分配一个线程
,当请求过多时,每个线程占用一定的内存空间,服务器瘫痪了。
JDK1.4开始支持NIO,适用于连接数目多且连接比较短的架构
,比如聊天服务器,并发局限于应用中。
一个请求一个线程。
(3)异步非阻塞AIO
一个有效请求一个线程。
JDK1.7开始支持AIO,适用于连接数目多且连接比较长的结构
,比如相册服务器,充分调用OS参与并发操作。
java 中 IO 的流的种类及BIO、NIO、AIO 有什么区别?相关推荐
- Java常见面试题:BIO,NIO,AIO 有什么区别?
Java 中 IO 流分为几种? 按功能来分:输入流(input).输出流(output). 按类型来分:字节流和字符流. 字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流 ...
- java io流区别_Java中IO流的分类和BIO,NIO,AIO的区别
到底什么是IO 我们常说的IO,指的是文件的输入和输出,但是在操作系统层面是如何定义IO的呢?到底什么样的过程可以叫做是一次IO呢? 拿一次磁盘文件读取为例,我们要读取的文件是存储在磁盘上的,我们的目 ...
- Java中IO流的分类和BIO,NIO,AIO的区别
到底什么是IO 我们常说的IO,指的是文件的输入和输出,但是在操作系统层面是如何定义IO的呢?到底什么样的过程可以叫做是一次IO呢? 拿一次磁盘文件读取为例,我们要读取的文件是存储在磁盘上的,我们的目 ...
- IO之 java中BIO NIO AIO原理、区别以及应用
在本篇文章中,我们主要介绍一下java中的BIO NIO AIO,重点是NIO 先说一下同步.异步.阻塞和非阻塞. 简单来讲,同步和异步是针对内核和应用程序之间的交互而言的:阻塞和非阻塞其实是针对进程 ...
- java中io各种流的关闭顺序
关闭该流并释放与之关联的所有资源.在关闭该流后,再调用 read().ready().mark().reset() 或 skip() 将抛出 IOException.关闭以前关闭的流无效. publi ...
- Java IO(BIO, NIO, AIO) 总结
文章转载自:JavaGuide 目录 BIO,NIO,AIO 总结 同步与异步 阻塞和非阻塞 1. BIO (Blocking I/O) 1.1 传统 BIO 1.2 伪异步 IO 1.3 代码示例 ...
- Java中IO流体系
转载: https://mp.weixin.qq.com/s?__biz=MzA5NzgzODI5NA==&mid=2454030958&idx=1&sn=df27aadb92 ...
- Java中IO流的总结
有关Java中IO流总结图 流分类 按方向分 输入流 输出流 按单位分 字节流 字符流 按功能分 节点流 处理流(过滤流) 其他 所有的流继承与这四类流:InputSteam.OutputStream ...
- Java中IO流,输入输出流概述与总结(转载自别先生文章)
Java中IO流,输入输出流概述与总结 总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都 ...
最新文章
- linux下查看GPU版本和详情信息 CUDA版本信息 anaconda版本信息
- iosetup mysql_InnoDB: Error: io_setup() failed with EAGAIN after 5 attempt
- 结合hello world探讨gcc编译程序的过程
- 手动打开和关闭windows的相关服务
- sql共享功能目录无法更改_大企业数据库服务首选!AliSQL这几大企业级功能你不可不知...
- bzoj 2905 背单词
- java 方法 示例_Java ArrayDeque带有示例的removeFirstOccurrence()方法
- 去除面部黑色素小妙招_去除暗黄皮肤的小妙招 7招让你白皙动人
- 如何实现跨项目代码复用
- 斯坦福大学自然语言处理第二课“文本处理基础(Basic Text Processing)”
- 计算机的品牌和发展历程,世界著名电脑品牌苹果的发展历程
- 仿百思不得其姐项目开发(粗略笔记,后期规范排版和更新)
- 机器学习(四):决策树绘画(基础篇)
- 传智播客C语言视频第二季(第一季基础上增加诸多C语言案例讲解,有效下载期为10.5-10.10关闭)...
- c++primer plus 第六版 第六章重点内容总结 以及编程题答案
- 终极WordPress页面构建器:WPBakery
- vue跳转链接(新页签)
- android虚拟内存管理,安卓手机虚拟内存软件下载(一招教你扩大手机虚拟内存)...
- 记录一下Vue中的created函数所踩到的坑(回调函数不立即生效)
- 纪中20日c组模拟赛T1 2121. 简单游戏