Netty 系列 三 Reactor模型和Netty模型

传统的IO模型

 

Reactor模型 有三种 单Reactor单线程  单Reactor多线程  主从Reactor多线程 

分别对应下图 单Reactor单线程

单Reactor多线程 

主从Reactor多线程 

 

别名 分发者模式 通知者模式 反应器模式

Netty模型就是基于主从Reactor多线程模式又进行了一些改造

Netty 模型

1.Netty抽象出了2组线程池,bossGroup专门负责客户端的链接,workGroup 专门负责网络的读写

2.bossGroup workGroup 2个对象的类型都是NioEventLoopGroup 

3.NioEventLoopGroup是一个不断循环执行任务的线程池

4.每个Boss NioEventLoop 循环执行的步骤有3步

1.轮询accept 事件
2.处理accept 事件 , 与client建立连接 , 生成NioScocketChannel , 并将其注册到某个worker NIOEventLoop 上的 selector
3.处理任务队列的任务 , 即 runAllTasks
5 每个 Worker NIOEventLoop 循环执行的步骤

1.轮询read, write 事件
2.处理i/o事件, 即read , write 事件,在对应NioScocketChannel 处理
3.处理任务队列的任务 , 即 runAllTasks
6 每个Worker NIOEventLoop  处理业务时,会使用pipeline(管道), pipeline 中包含了 channel , 即通过pipeline 可以获取到对应通道, 管道中维护了很多的 处理器

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值