24、Netty源码分析:Unsafe.write()

本文深入解析Netty中Unsafe的write和flush方法源码,详细阐述ChannelOutboundBuffer缓冲区机制、数据写入流程以及从Netty缓冲区到TCP缓冲区的刷新过程,帮助开发者理解Netty底层网络通信原理。

Unsafewrite方法由其实现类AbstractUnsafe实现。

 

Netty为每个channel配备了一个缓冲区ChannelOutboundBuffer,每次调用write方法写入的数据都是先写入该缓冲区,当调用flush方法时才会将数据写入TCP的缓冲区。wirte方法的源码如下:

 

调用flush将Netty缓冲区的数据写入TCP的缓冲区,即发送出去,flush的源码如下:

 

第8步的doWrite方法是AbstractChannel类的抽象方法,在NioSocketChannel中实现,源码如下:
 

至此,Unsafe的write和flush操作至此分析完毕。

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