Netty学习08- Netty构建连接过程剖析

学习第23节

Netty启动起来后的最后一件事情,也是最重要的事情,就是注册一个OP_ACCETP事件,等待连接的创建。

构建连接的主线过程如下:
在这里插入图片描述
使用以上两个线程创建连接。

接受连接本质:

selector.select()/selectNow()/select(timeoutMillis) 发现 OP_ACCEPT 事件,处理:
SocketChannel socketChannel = serverSocketChannel.accept()
selectionKey = javaChannel().register(eventLoop().unwrappedSelector(), 0, this);
selectionKey.interestOps(OP_READ);

创建连接的初始化和注册是通过 pipeline.fireChannelRead 在 ServerBootstrapAcceptor 中完成的。
第一次 Register 并不是监听 OP_READ ,而是 0 :
selectionKey = javaChannel().register(eventLoop().unwrappedSelector(), 0, this) 。
最终监听 OP_READ 是通过“Register”完成后的fireChannelActive
(io.netty.channel.AbstractChannel.AbstractUnsafe#register0中)来触发的
Worker’s NioEventLoop 是通过 Register 操作执行来启动。
接受连接的读操作,不会尝试读取更多次(16次)。

以上操作就完成了操作的创建。

注:内容参考极客时间相关课程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值