手把手带你调试阅读Netty启动服务流程源码

JavaEdge

共 763字,需浏览 2分钟

 ·

2020-12-25 07:08


  点击上方“JavaEdge”,关注公众号

设为“星标”,好文章不错过!

我们自己的线程,如果写在main 方法,那就是

main 线程

在创建 NioEventLoopGroup(创建一组NioEventLoop) 的过程中就创建了 selector

这里因为我们当前线程其实是 main 线程,所以为 false

创建 ServerSocketChannel

  • 初始化 server socket channel

  • 给 server socket channel 从 boss group 选择一个 NioEventLoop

boss thread

将 serverSocketChannel 注册到选择的 NioEventLoop 的 selector

绑定地址启动

注册接受连接事件(OP_ACCEPT) 到selector

第一次注册并非监听OP_ACCEPT,而是0

最终监听的OP_ ACCEPT通过bind完成后的fireChannelActive()触发

NioEventLoop 是通过 Register 操作的执行来完成启动。


往期推荐


大厂如何解决数值精度/舍入/溢出问题

大厂数据库事务实践-事务生效就能保证正确回滚?

线上问题事迹(一)数据库事务居然都没生效?

硬核干货:HTTP超时、重复请求必见坑点及解决方案

给大忙人们看的Java NIO教程之Channel





目前交流群已有 800+人,旨在促进技术交流,可关注公众号添加笔者微信邀请进群


喜欢文章,点个“在看、点赞、分享”素质三连支持一下~

浏览 23
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报