《Netty》从零开始学netty源码(十七)之AbstractUnsafe

NioServerSocketChannel的父类AbstractChannel调用newUnsafe方法创建AbstractNioUnsafenewUnsafe直接调用NioMessageUnsafe的无参构造函数创建实例,该构造函数是java默认的构造函数,过程如下:
《Netty》从零开始学netty源码(十七)之AbstractUnsafe_第1张图片

NioMessageUnsafe的结构图如下:
《Netty》从零开始学netty源码(十七)之AbstractUnsafe_第2张图片

NioMessageUnsafe的父类和接口都是Channel相应的内部类,其承担着channel网络相关的功能,比如读操作、写操作等。NioMessageUnsafe的参数如下:
《Netty》从零开始学netty源码(十七)之AbstractUnsafe_第3张图片

NioMessageUnsafe进行读操作时会把数据读取到readBuf,当进行写操作时会把数据写到outboundBuffer,当进行flush操作时会把outboundBuffer的数据写到TCP的缓冲区,即发送数据。

NioMessageUnsafe的功能如下:
《Netty》从零开始学netty源码(十七)之AbstractUnsafe_第4张图片

因为unsafe类在netty中算是比较底层的类,下一节开始我们开始分析它的方法。

你可能感兴趣的:(Netty,java,netty)