本文介绍: (2)一个通道不一定支持所有的四种操作,比如ServerSocketChannel支持Accept操作,SocketChannel则不支持。Selector一般称为选择器,也叫多路复用器,NIO的核心组件,用于检查一个或多个Channel的状态是否处于可读、可写的状态。在注册的时候,需要指定通道那些操作是选择器感兴趣的。(2)Selector不断查询Channel中操作的就绪状态,并挑选感兴趣的操作就绪状态,并放入选择键集合。(1)Channel注册后,一旦通道处于某种就绪的状态,就可以被选择器查询到。
1.Selector和Channel关系
Selector一般称为选择器,也叫多路复用器,NIO的核心组件,用于检查一个或多个Channel的状态是否处于可读、可写的状态。
2.可选择通道
(1)不是所有的channel都能被selector复用,就是要看channel是否继承SelectableChannel,如果继承了就是可以复用。例如:FileChannel是不能被selector复用的。
(2)一个通道可以被注册到多个选择骑上,但每个选择器只能被注册一次。在注册的时候,需要指定通道那些操作是选择器感兴趣的。
3.Channel注册到Selector
3.1 选择键(SelectionKey)
(1)Channel注册后,一旦通道处于某种就绪的状态,就可以被选择器查询到。
(2)Selector不断查询Channel中操作的就绪状态,并挑选感兴趣的操作就绪状态,并放入选择键集合。
(3)一个选择键包含了特定通道域特定选择器之间的注册关系。
NIO就是根据对应的选择键,进行不同的业务逻辑处理。
3.2 Selector的使用方法
2.轮询查询就绪操作
4 实验案例
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。