Netty工作原理

  1. 抽象出两个线程池:BossGroup和WorkerGroup,线程池类型是NioEventLoopGroup,其中子线程的类型是NioEventLoop
    a. BoosGroup:只负责客户端连接
    b. WorkerGroup:只负责网络读写
  2. NioEventLoopGroup相当于一个事件循环组,其中含有多个事件循环(这个子线程的数量可以指定),每个循环是NioEventLoop,而NioEventLoo代表一个不断循环执行处理任务的线程。
    a. NioEventLoop里面都有一个selector,用于监听绑定在它上面的socket的网络通讯,即监所绑定的channel的连接事件
  3. 其中BoosGroup中的NioEventLoop中循环执行的任务分为三步
    a. 轮询accept事件
    b. 处理accept事件,并建立连接,生成一个NioSocketChannel,再将其绑定到WorkerGroup中的某个子线程NioEventLoop中的selector上
    c. 再处理任务队列的任务,runAllTask
  4. 其中WorkerGroup中NioEventLoop中循环执行的任务分为三步
    a. 轮询read、write事件
    b. 处理io事件,处理read或者write事件,在对应的NioSocketChannel读写(之前Boss中注册过来的)
    c. 再处理任务队列的任务,runAllTask
  5. 其中WorkerGroup中NioEventLoop中,处理业务逻辑时会使用pipeline(管道),管道包含了channel,即可以通过pipeline可以获取到所对应的channel,pipeline包含多个处理器,有内置也可以自己开发的处理器,可以对数据进行拦截或过滤
    在这里插入图片描述
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值