Unsafe的write方法由其实现类AbstractUnsafe实现。

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

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

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

至此,Unsafe的write和flush操作至此分析完毕。
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: