首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java NIO为什么Selector必须在非阻塞模式下使用Channel?

Java NIO为什么Selector必须在非阻塞模式下使用Channel?
EN

Stack Overflow用户
提问于 2020-09-12 11:46:12
回答 1查看 112关注 0票数 1

根据this passage的说法,IO多路复用可以在阻塞和非阻塞模式下使用文件描述符:

非阻塞模式只需要配合边缘触发模式:

更重要的是,根据this answer的说法,Java NIO在杠杆触发模式下工作。

那么为什么Java NIO Selector要求通道处于非阻塞模式:

感谢您的提前回复。

EN

回答 1

Stack Overflow用户

发布于 2020-09-12 19:45:28

java.nioChannel的强大之处在于您可以以非阻塞方式监视多个套接字。换句话说,传统的java.io是一种阻塞IO调用的single-thread / single-socket方法,而java.nio意味着您可以在不需要数千个线程的情况下产生数千个套接字连接(通过通道和选择器)。在这里,选择器的工作是帮助你的线程/线程池从准备好并连接的通道进行读写。

Java Docs for Channel将其定义为

定义通道,表示到能够执行I/O操作的实体(如文件和套接字)的连接;定义选择器,用于多路复用的非阻塞I/O操作

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63856618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档