17、Netty源码分析:AbstractUnsafe

本文深入解析Netty中NioMessageUnsafe类的创建过程、结构、参数及其核心功能,包括如何通过readBuf和outboundBuffer进行数据读写与flush操作,是理解Netty底层网络通信机制的关键。

NioServerSocketChannel的父类AbstractChannel调用newUnsafe方法创建AbstractNioUnsafenewUnsafe直接调用NioMessageUnsafe的无参构造函数创建实例,该构造函数是java默认的构造函数,过程如下:
 

NioMessageUnsafe的结构图如下:
 

NioMessageUnsafe的父类和接口都是Channel相应的内部类,其承担着channel网络相关的功能,比如读操作、写操作等。NioMessageUnsafe的参数如下:
 

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

NioMessageUnsafe的功能如下:
 

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

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: