Java高并发教程:详解NIO Selector类

Java高并发教程:详解NIO Selector类

NIO Selector

  Java NIO Selector可以检查一个或多个Java NIO Channel实例,并确定哪些通道可供使用,例如read或write。 这样,单个线程可以管理多个通道,从而可以管理多个网络连接。Selector 选择器的使命是完成IO的多路复用。一个通道代表一条连接通路,通过选择器可以同时监控多个通道IO(输入输出)状况。选择器和通道的关系,是监控和被监控的关系。

  如下图所示为一个Selector同时监控3个Channel:

  

 

   选择器提供了独特的API方法,能够选出Select所监控的通道拥有哪些已经准备好的,就绪的IO操作事件。可供选择器监控的通道IO事件类型,包括以下:

  1. 可读:SelectionKey.OP_READ
  2. 可写:SelectionKey.OP_WRITE
  3. 连接:SelectionKey.OP_CONNECT
  4. 接收:SelectionKey.OP_ACCEPT

  判断一个通道能否被选择器监控或者选择,有一个前提:判断它是否继承了抽象类SelectableChannel

注:IO事件指的是通道的某个IO操作的一种就绪状态

 

参考资料

 

posted @ 2020-06-15 23:08  子烁爱学习  阅读(436)  评论(0编辑  收藏  举报