NIO学习笔记

ByteBuffer 和其余的Buffer,如chatBuffer,DoubleBuffer同样都是Buffer的子类,ByteBuffer只有一个指针position用于处理读写操做,读取的内容为 position和limit之间的内容,ByteBuffer的flip() 方法使position置0,limit设置为position 的位置,capacity是Buffer的上限,也就是申请大小的时候那个参数。一旦分配大小不变。(netty中的ByteBuf中有俩个标记指针,一个是readerindex,另外一个是writeindex),compat用于释放已读区域?待验证。线程


Chanel 是同道,与流的区别主要是Chanel是双向的,而流是单向的。channel同时支持读写。指针

Selector 是多路复用器, 能够轮询注册在其上的Channel,当被轮询到的Channel处于就绪时能够进行操做,遍历SelectKey能够遍历Channel集合,与传统的IO 服务端客户端模型不一样, 用NIO一个线程用于轮询Selector便可完成对多个链接的请求处理,前者一个线程维护一个请求。netty

相关文章
相关标签/搜索