社区
Java SE
帖子详情
哪位为高手能解释一下 NIO(非阻塞的IO)的实现原理?谢谢!
wdydt163
2002-12-12 01:38:06
我觉得从根本上来说还是阻塞的,只不过换了种方式,是不是啊?
...全文
433
4
打赏
收藏
哪位为高手能解释一下 NIO(非阻塞的IO)的实现原理?谢谢!
我觉得从根本上来说还是阻塞的,只不过换了种方式,是不是啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hellking
2002-12-13
打赏
举报
回复
我个人感觉java1.4中的NIO有点类似于JMS的处理法,你可以open多个channel
然后到selector里注册一下,等于把channle的控制权交给selector,selector对注册过的channle进行轮询,如果有内容到达就设置一个标志,你就可以知道你的channle有数据了。
原来的阻塞方式可能会造成大量的thread进入阻塞状态,占用大量的系统资源,现在的非阻塞方式避免了这个问题。
nbm0
2002-12-13
打赏
举报
回复
学习
gavin1976
2002-12-13
打赏
举报
回复
在阻塞模式中,线程将在读或写时阻塞,一直到读或写操作彻底完成。如果在读的时候,数据尚未完全到达套接字,则线程将在读操作上阻塞,一直到数据可用。
在非阻塞模式中,线程将读取已经可用的数据(不论多少),然后返回执行其它任务。如果将真(true)传递给 configureBlockingMethod(),则通道的行为将与在 Socket 上进行阻塞读或写时的行为完全相同。唯一的主要差别,是这些阻塞读和写可以被其它线程中断。
jeffsonxl
2002-12-13
打赏
举报
回复
其实就是建立了两个通道,读和写分开,一人一个通道,互不干扰,但通过管道流可以对他两同时控制
彻底理解
非阻塞
IO
(
N
IO
)
本文详细介绍了Linux下的B
IO
、
N
IO
和
IO
多路复用(select/poll/epoll)的概念与区别。
N
IO
通过
非阻塞
IO
和
IO
多路复用实现同步
非阻塞
,降低了高并发场景下的线程资源消耗,而epoll作为
IO
多路复用的高效实现,解决了轮询带来的CPU占用问题,提升了系统资源利用率。
java
n
io
原理
非阻塞
IO
Netty
本文从基本的
IO
、
N
IO
学起,介绍操作系统对I/O的定义,即由系统内核加载磁盘数据。还阐述网络编程中的
IO
模型,包括同步阻塞I/O、同步
非阻塞
I/O、多路复用模型(含select和epoll模型)和异步
非阻塞
I/O,分析各模型优缺点,强调熟悉
N
IO
对理解Netty源码的重要性。
IO
与
N
IO
区别
Java
N
IO
(New
IO
)在JDK1.4引入,提供了一种不同于传统
IO
的面向流的处理方式。
N
IO
基于缓冲区,而非直接从流中读写数据,提高了效率。它还引入了
非阻塞
IO
和选择器,允许单线程高效地管理多个通道。
非阻塞
IO
在没有数据可读时不会阻塞线程,而选择器则能监控多个通道,简化多通道管理。
N
IO
适合处理大量连接但数据量小的场景,如聊天服务器,而传统
IO
更适合处理少量连接但数据量大的情况。
什么是
N
IO
?快速了解
IO
和
N
IO
底层原理
本文详细介绍了Java
IO
的读写原理,包括内核缓冲与进程缓冲区、Java
IO
的底层流程。接着探讨了四种主要的
IO
模型:同步阻塞
IO
、同步
非阻塞
N
IO
、
IO
多路复用和异步
IO
模型,分析了各自的优缺点及应用场景。Java
N
IO
实际上采用的是
IO
多路复用模型,而非同步
非阻塞
N
IO
。总结了不同
IO
模型在高并发场景下的适用性。
Java SE
62,622
社区成员
307,252
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章