《Netty》从零开始学netty源码(二十一)之Unsafe.read()

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

《Netty》从零开始学netty源码(二十一)之Unsafe.read()_第1张图片

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

《Netty》从零开始学netty源码(二十一)之Unsafe.read()_第2张图片

第2步中的doReadMessage方法在NioSocketChannel实现,源码如下:
《Netty》从零开始学netty源码(二十一)之Unsafe.read()_第3张图片

worker线程中使用的NioByteUnsaferead方法:

《Netty》从零开始学netty源码(二十一)之Unsafe.read()_第4张图片

第5步中的doReadBytes方法在NioServerSocketChannel中实现,源码如下:
《Netty》从零开始学netty源码(二十一)之Unsafe.read()_第5张图片

至此Unsaferead方法分析至此。

你可能感兴趣的:(Netty,netty)