栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

nio详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

nio详解

聊聊nio

bio叫做同步阻塞的io模型, 数据的读取和写入必须阻塞在一个线程里面, 等待完成, 也就是说, 当连接数不是很高, 例如说, 只有不到1000的连接数的这么一个情况的时候, 这种模型是很不错的, 可以让每一个连接都专注于自己的一个io, 并且编码简单, 更不用去考虑系统的一个过载和限流的问题, 更何况线程池本身就有等待和缓冲的这么一个作用, 连接量不高的情况下是可以兼顾性能和连接量的.

但是当我们的连接数一旦大的时候, 传统的bio模型是十分无力的.

nio, 叫做同步非阻塞的这么一个io模型, 在java的1.4就引入了nio的框架, 在java.nio包下, 提供了这些Channel(通道频道), Selector(选择器)和Buffer(缓冲)这些抽象类.

nio中的n可以理解为non-blocking(非阻塞), 是支持面向缓冲面向通道的一个io操作, nio提供了和传统io模型中的socket, serversocket相对应的一个socket channel和serversocket channel这两种不同的套接字的通道的实现.

这两种通道都支持阻塞和非阻塞的一个模型, 阻塞就和传统的bio是一样的了.(性能和可靠性都一般). 但是非阻塞就正好相反.

低负载, 低并发的应用程序可以使用阻塞的io模型来提高效率, 以及更好的维护, 因为代码比较简单.

而对于这种高负载, 高并发的这种应用, 我们应该使用nio这种非阻塞的模型来进行开发.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/750816.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号