美文网首页
nio个人研究

nio个人研究

作者: 在绝望中飘零 | 来源:发表于2018-09-26 09:29 被阅读0次

nio中的关键是selecter,这是一个选择器,从代码来看实际上就是一个列表,一个包含SelectionKey的阵列,而一个SelectionKey对应于一个通道

当我们使用this.selector.select();方法,如果有通道在通讯,那么就会有通道写入selecter选择器中.select从阻塞的状态变为执行,后面的代码才会执行,同时在selecter列表中会加入

已就绪的通道.然后我们一个一个通首的进行处理.

this.selector.select();

Iterator selectorKeys = this.selector.selectedKeys().iterator();

selectorKeys 类型中的属性也没有什么,其实也就是一个通道和一个Object类型,通道代表注册的通道,也就是和通道关联的是那个通道,所有的通道一般都继承

  public abstract SelectableChannel channel();

而有一个属性为Object可以绑定任何类型对象.

很显示客户连接服务器时,这时通道会触发事件,然后会向selector写入自己对应的SelectionKey并置相应的操作状态,selecter在select时发现列表有数据后会停止阻塞向下执行.

因此selecter其实就是不段的循环看看是selectorKeys 列表是否有东西,如果没有就阻塞,如果有就开始处理selectorKeys直到列表为零为至,然后继续阻塞.

相关文章

  • nio个人研究

    nio中的关键是selecter,这是一个选择器,从代码来看实际上就是一个列表,一个包含SelectionKey的...

  • Nio的研究

    1.Nio是面向缓冲区,传统流是面向流的 2.Nio是非阻塞式的,流是阻塞式的 3.Nio两个重要概念 (1)通道...

  • Java NIO (十四)NIO 和 IO 的区别和适用场景分

    在研究Java NIO和IO API时,很快就会想到一个问题: 什么时候应该使用IO,什么时候应该使用NIO? 在...

  • Netty源码(一):Netty中的Buffer

    最近我学习了NIO相关的知识,然后发现了Netty这个基于NIO的网络应用框架,于是就研究起Netty框架源码,来...

  • Java NIO与IO

    在研究Java NIO和IO API时,很快就会出现一个问题: 我什么时候应该使用IO,什么时候应该使用NIO? ...

  • 图解Java NIO

    目录: NIO结构 NIO与传统IO异同 NIO使用步骤 NIO代码 ByteBuffer难点解析 1:NIO结构...

  • nio

    参考文章 Java Nio Java NIO学习笔记 - NIO客户端时序图 Java NIO学习笔记 - NIO...

  • NIO(二、Buffer)

    目录 NIO(一、概述)NIO(二、Buffer)NIO(三、Channel)NIO(四、Selector) Bu...

  • NIO(四、Selector)

    目录 NIO(一、概述)NIO(二、Buffer)NIO(三、Channel)NIO(四、Selector) Se...

  • NIO(三、Channel)

    目录 NIO(一、概述)NIO(二、Buffer)NIO(三、Channel)NIO(四、Selector) Ch...

网友评论

      本文标题:nio个人研究

      本文链接:https://www.haomeiwen.com/subject/sefdoftx.html