21、Netty源码分析:Unsafe.read()

深入解析Netty框架中Unsafe接口的read操作,对比NioByteUnsafe和NioMessageUnsafe两个实现类在boss线程与worker线程中的不同应用场景、源码实现及核心方法doReadMessage与doReadBytes的调用流程。

关于Unsafe的read操作,它的两个实现类NioByteUnsafeNioMessageUnsafe都实现了这个方法,在服务端中一般会设置一个boss线程组和一个worker线程组,客户端一般只设置一个worker线程,在worker线程中使用的NioByteUnsafe的read方法,在boss线程中使用的是NioMessageUnsafe的read方法。

 

boss线程中使用的是NioMessageUnsaferead方法:

 

第2步中的doReadMessage方法在NioSocketChannel实现,源码如下:
 

worker线程中使用的NioByteUnsaferead方法:

 

第5步中的doReadBytes方法在NioServerSocketChannel中实现,源码如下:
 

至此Unsafe的read方法分析至此。

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