美文网首页
2. Netty-NioEventLoopGroup

2. Netty-NioEventLoopGroup

作者: JacobChan001 | 来源:发表于2020-08-05 09:56 被阅读0次

NioEventLoopGroup 的结构图

NioEventLoopGroup.png
  • NioEventLoopGroup 是 NioEventLoop 的集合,其持有一个装着 NioEventLoop 的数组
  • 每个 NioEventLoop 里面有一个 selector 和一个 taskQueue
    • selector: 负责监听事件
    • taskQueue: 用来保存异步任务
    • exector: 单线程线程池,用来异步执行 NioEventLoop的 run() 方法
  • NioEventLoop 在初始化之后会从 executor 里启动一个线程执行自身的 run() 方法,该方法执行逻辑
    • selector.select(): 返回监听事件
    • processSelectedKeys(): 处理 selector 返回的事件
    • runAllTasks(): 处理异步队列的任务

BossGroup

  • 监听 Accept 事件
  • 当 accept 事件返回后,调用 ServerSocketChannle.pipeline() 中注册的 ChannelHandler,在 pipeline 中有一个处理接受请求的 ChannelHandler , 即 ServerBootstrapAcceptor,执行该 ChannelHandler 的 channelRead() 方法将事件携带的 socketChannel 封装成 NioSocketChannel,并注册到 workerGroup 中的 NioEventLoop 下的 Selector 中

WorkerGroup

  • 监听 Connect/Read 事件
  • 当 connect / read 事件返回后,调用 SocketChannel.pipeline() 中注册的 ChannelHandler,这些 ChannelHandler 既是 ServerBootstrap.childHandler() 注册的 ChannelHandler

相关文章

  • 2. Netty-NioEventLoopGroup

    NioEventLoopGroup 的结构图 NioEventLoopGroup 是 NioEventLoop 的...

  • 2.

    越长大越觉得被喜欢真的是一件很幸福的事情。

  • 2.

    屠然走得太急了,关门时的巨大动静她没注意到是震醒了床上的人,他施施然的睁开眼,不见昨晚醉酒的人,微微笑了笑“还...

  • 2.

    (二) 玄衣男子脚边的碎石子从崖边滚了下去,久久没有听见回声。 雨水落在发梢,从头发上...

  • 2.

    我跟我妈抱怨,为什么她把我生得身上这么多汗毛? 我妈说,那是因为我返祖。返祖? ! 返祖?...

  • 2.

    分手的第二天,今天感觉好多了,没有昨天那么想你,也许是今天上班了吧。 中午午睡的时候,闭上眼睛脑海里都...

  • 2.

    2.入宫 清晨,第一抹阳光照进房间,伴随着窗外一声一声嘹亮地鸡鸣,躺在床上的人动了动. 樱内撑起身子坐在床上,用左...

  • 2.

    寒食 唐 韩翃 春城无处不飞花,寒食东风御柳斜。...

  • 2.

    昨天晚上9点的时候坐床上学习 我妈说:“你肯定一会儿就睡着了。” 我:“不会的!” 然而。。。。。。 今天早上凌晨...

  • 2.

    屬於記性差,非常差的那一類人。 差到什麼程度呢? 20歲之前的事情幾乎記不太清楚。 當身邊人侃侃而談曾經的畫面,我...

网友评论

      本文标题:2. Netty-NioEventLoopGroup

      本文链接:https://www.haomeiwen.com/subject/mfajrktx.html