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即可完成对多个连接的请求处理,前者一个线程维护一个请求。


    

你可能感兴趣的:(NIO学习笔记)