V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lhx2008
V2EX  ›  问与答

Netty 的 ChannelFuture 底层实现是一个线程池来执行吗

  •  
  •   lhx2008 · 2018-07-10 12:17:29 +08:00 via Android · 1196 次点击
    这是一个创建于 2353 天前的主题,其中的信息可能已经有所发展或是发生改变。
    初学 netty,想来请教下

    ChannelFuture 提供了类似 js 的异步回调的写法,js 的实现应该是另外一个线程在执行,然后执行完再调用回调函数

    ChannelFuture 的实现是怎么样呢,是由 Netty 维护的一个线程池来执行的吗?有没有人解释下
    2 条回复    2018-07-10 12:49:02 +08:00
    coolcfan
        1
    coolcfan  
       2018-07-10 12:47:49 +08:00 via Android   ❤️ 1
    如果你用的是 NIO 开头的那一套东西的话,就把 EventLoopGroup 当作线程池好了。而一个 Channel 对应 Group 中的一个 EventLoop,NIO 的那个 EventLoop 本身默认是单线程的,既处理 I/O 事件,又处理相关 Future 的调用。默认情况下它会努力让处理两者的比例维持在 1:1 …
    coolcfan
        2
    coolcfan  
       2018-07-10 12:49:02 +08:00 via Android
    纯靠记忆说的,可能记错……感兴趣的话可以自己去看相关类的源码,和源码分析的文章。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3833 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:22 · PVG 18:22 · LAX 02:22 · JFK 05:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.