关于Unsafe的read操作,它的两个实现类NioByteUnsafe和NioMessageUnsafe都实现了这个方法,在服务端中一般会设置一个boss线程组和一个worker线程组,客户端一般只设置一个worker线程,在worker线程中使用的NioByteUnsafe的read方法,在boss线程中使用的是NioMessageUnsafe的read方法。
boss线程中使用的是NioMessageUnsafe的read
方法:
第2步中的doReadMessage
方法在NioSocketChannel实现,源码如下:
worker线程中使用的NioByteUnsafe的read
方法:
第5步中的doReadBytes
方法在NioServerSocketChannel中实现,源码如下:
至此Unsafe的read方法分析至此。
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: