美文网首页
netty中的多线程

netty中的多线程

作者: lingfighting | 来源:发表于2021-11-10 16:37 被阅读0次
    netty多线程 (1).jpg

    MultithreadEventExecutorGroup

    image.png
    • MultithreadEventExecutorGroup:NioEventLoopGroup构造逻辑实现类

    • NioEventLoopGroup:是 MultithreadEventExecutorGroup 的子子类,实现了newChild(Executor var1, Object... var2)方法,为 MultithreadEventExecutorGroup 中 this.children 数组字段赋值;

    即 每个child 都是一个 NioEventLoop ,每个NioEventLoop 都维护一个 “taskQueue” 和 一个 “具体的executor”。这个 executor 是在MultithreadEventExecutorGroup 的构造函数中传入的 ThreadPerTaskExecutor

    ThreadPerTaskExecutor:单线程的executor。赋值给loop里的executor。即,loop里的executor是单线程的,group负责查找可用的loop,相当于线程池的功能

    XXexecutor:是 Executor的实现类,用来制定具体任务执行规则,一般来说指 ”线程创建规则“可以启动新线程【比如,这里的ThreadPerTaskExecutor】,也可以使用线程池【比如 ThreadPoolExecutor 】

    • NioEventLoop:是 SingleThreadEventExecutor 的子类。

    AbstractEventExecutorGroup:实现了void execute(Runnable command);方法
    SingleThreadEventExecutord:实现了void execute(Runnable command);方法

    SingleThreadEventExecutor

    image.png
    • SingleThreadEventExecutor:子类NioEventLoop
    • SingleThreadEventExecutor:实现了void execute(Runnable command);方法。execute 方法里面使用外部传入的 executor 来创建线程

    相关文章

      网友评论

          本文标题:netty中的多线程

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