V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
FreeBSD
V2EX  ›  Java

netty tcp 连接池是怎么处理异步的? netty 大神进来搂一眼

  •  
  •   FreeBSD · Jun 27, 2018 · 3278 views
    This topic created in 2861 days ago, the information mentioned may be changed or developed.

    是这样实现的吗?

    1. netty 发送出去的报文中带有一个标志信息,同时 netty 会记录一个 channel 和标志信息的映射关系。
    
    2. 回应时报文也会带这个标志信息,netty 从报文中读取标志信息,然后找出对应的 channel,并调用 channel 的回调。
    

    这块的代码没找见,囧~~~

    3 replies    2018-06-28 14:08:43 +08:00
    captainjack
        1
    captainjack  
       Jun 27, 2018
    看看 java.nio 就知道了,其实还是靠套接字引用
    FreeBSD
        2
    FreeBSD  
    OP
       Jun 28, 2018
    @captainjack 能在具体一点吗?
    captainjack
        3
    captainjack  
       Jun 28, 2018
    @FreeBSD 具体到系统调用的层面,每一个 channel 其实对应的都是一个 fd,所以只需要拿这个描述符来标记就可以了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5709 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 09:01 · PVG 17:01 · LAX 02:01 · JFK 05:01
    ♥ Do have faith in what you're doing.