NioEventLoop中的方法inEventLoop

来源:4-7 NioEventLoop执行概述

Daniel2017

2019-05-20

  • 一个NioEventLoopGroup包含多个NioEventLoop
  • 一个NioEventLoop绑定到一个线程中
  • 所有在NioEventLoop处理的IO事件都在这个绑定的线程中执行
  • 一个Channel注册到一个NioEventLoop中
  • 一个NioEventLoop可以分配给多个Channel

以上是在Netty In Action中看到的描述,然后再结合老师的讲解,现在还是有个疑问,NioEventLoop中是一个线程去执行所有IO事件,那为什么还需要在里面使用inEventLoop判断是否为当前线程?(使用单个线程处理是为了减少Context switch)

写回答

1回答

闪电侠

2019-05-21

因为有可能是外部线程调用NioEventLoop对象去执行一些操作,这个时候,当前线程就是外部线程

0
4
Daniel2017
非常感谢!
2021-09-20
共4条回复

Java读源码之Netty深入剖析

解析netty各大组件细节,百万级性能调优,设计模式实际运用

2334 学习 · 283 问题

查看课程