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

文章详细分析了在服务端和客户端中,Unsafe的read方法如何在NioByteUnsafe和NioMessageUnsafe这两个实现类中被不同线程(boss线程和worker线程)使用。NioByteUnsafe的doReadBytes方法主要在worker线程处理NioServerSocketChannel,而NioMessageUnsafe的doReadMessage方法在boss线程中处理NioSocketChannel的读取。
摘要由CSDN通过智能技术生成

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

在这里插入图片描述

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

在这里插入图片描述

第2步中的doReadMessage方法在NioSocketChannel实现,源码如下:
在这里插入图片描述

worker线程中使用的NioByteUnsaferead方法:

在这里插入图片描述

第5步中的doReadBytes方法在NioServerSocketChannel中实现,源码如下:
在这里插入图片描述

至此Unsaferead方法分析至此。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值