NIO选择器

NIO选择器教程

NIO 中的 Selector 是注册各种 I/O 事件的地方,比如注册连接事件,读数据事件,写数据事件等等。NIO 的异步就是靠 Selector 告诉我们发生了什么事件。

Selector描述

Selector 是一个事件注册对象,当有连接请求过来,读取数据,写入数据这些都有对应的事件,在使用 Selector 来操作数据的时候可以分三步:

  1. 向 Selector 对象注册感兴趣的事情,比如:连接、读、写。
  2. 从 Selector 中获取感兴趣的事件。
  3. 从监听的事件里面获取数据,进行响应的处理。

Selector 响应的事件监听如下:

03 Selector.png

NIO 案例 教程中,我们讲解了 Selector 的使用方式。在监听过程中,我们会获取 Selector 中的 SelectionKey 集合,通过遍历该集合来判断有没有新的事物发生。

Selector总结

在传统的 BIO 模式当中,无论是请求读还是写,都是对流进行操作。每次客户端发起请求后都会一直等待,等待处理结果。而 NIO 中借助于 Selector 选择器,对感兴趣的事件进行监听。如果对应的感兴趣的事件发生,就会将相应的数据获取进行处理。