The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
newmiao

说说 fanIn 和 fanOut

  •  
  •   newmiao · Sep 2, 2021 · 1629 views
    This topic created in 1712 days ago, the information mentioned may be changed or developed.

    文章目录

    fanIn

    • 协程版

    • 递归版

    • 反射版

    fanOut

    • 同步版

    • 协程异步版

    • 反射版

    今天回顾下常用的两种 channel 应用模式: fanIn 和 fanOut,

    分别对应了,对一组相同类型 chan 的合并和广播。

    fanIn 将全部输入 chan 都聚合到一个 out chan 中,在全部聚合完成后,关闭 out chan.

    详见传送门

    附上压测数据 压测数据

    2 replies    2021-09-10 19:21:14 +08:00
    Mohanson
        1
    Mohanson  
       Sep 2, 2021
    看了第一段代码,一些明显的优化点:
    - 使用 select 不要每个 chan 新起一个 go
    - out chan 带个 1024 缓存
    newmiao
        2
    newmiao  
    OP
       Sep 10, 2021
    > 使用 select 不要每个 chan 新起一个 go
    @Mohanson 你说的是哪段代码
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3322 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 00:31 · PVG 08:31 · LAX 17:31 · JFK 20:31
    ♥ Do have faith in what you're doing.