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

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

*

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

*

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

*

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

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

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