JavaNIO为什么选择器必须在非阻塞模式下使用通道?
根据,IO多路复用可以在阻塞和非阻塞模式下与文件描述符一起工作: 非阻塞模式仅需与边缘触发模式配合: 此外,据介绍,JavaNIO在杠杆触发模式下工作 那么为什么Java NIO选择器要求通道处于非阻塞模式:JavaNIO为什么选择器必须在非阻塞模式下使用通道?,java,nio,epoll,Java,Nio,Epoll,根据,IO多路复用可以在阻塞和非阻塞模式下与文件描述符一起工作: 非阻塞模式仅需与边缘触发模式配合: 此外,据介绍,JavaNIO在杠杆触发模式下工作 那么为什么Java NIO选择器要求通道处于非阻塞模式: 感谢您提前回复。java.nio和频道的强大之处在于您可以以非阻塞方式监视多个套接字。换句话说,传统的java.io是一种阻止io调用的单线程/单套接字方法,而java.nio的用途是可以产生数千个套接字连接(通过通道和选择器),而不需要数千个线程。这里,选择器的工作是帮助您的线程/
感谢您提前回复。java.nio和
频道的强大之处在于您可以以非阻塞方式监视多个套接字。换句话说,传统的java.io
是一种阻止io调用的单线程/单套接字
方法,而java.nio
的用途是可以产生数千个套接字连接(通过通道和选择器),而不需要数千个线程。这里,选择器的工作是帮助您的线程/线程池从准备就绪且已连接的通道进行读写
Java Docs for Channel将其定义为:
定义通道,这些通道表示到以下实体的连接:
能够执行I/O操作,如文件和套接字;
定义选择器,用于多路复用、非阻塞I/O操作
没有回答问题。在阻塞模式下使用选择器是很有问题的。JavaNIO设计者可能选择回避整个问题。