《Netty》从零开始学netty源码(十七)之AbstractUnsafe
NioServerSocketChannel的父类AbstractChannel调用newUnsafe
方法创建AbstractNioUnsafe,newUnsafe
直接调用NioMessageUnsafe的无参构造函数创建实例,该构造函数是java默认的构造函数,过程如下:
NioMessageUnsafe的结构图如下:
NioMessageUnsafe的父类和接口都是Channel相应的内部类,其承担着channel网络相关的功能,比如读操作、写操作等。NioMessageUnsafe的参数如下:
当NioMessageUnsafe进行读操作时会把数据读取到readBuf
,当进行写操作时会把数据写到outboundBuffer
,当进行flush操作时会把outboundBuffer
的数据写到TCP的缓冲区,即发送数据。
NioMessageUnsafe的功能如下:
因为unsafe类在netty中算是比较底层的类,下一节开始我们开始分析它的方法。