merge时间问题

来源:3-7 性能分析

Prnyself

2018-03-01 17:53

还是不明白为什么merge的时间是一样的  求解释

写回答 关注

2回答

  • 幕布斯3166344
    2018-03-04 23:35:18

    个人理解:并行中,merge1,merge2,merge3 都在等待自己的 输入 chan 中有数据存入。merge1比较一次就会往自己的输出chan,也就是merge3的输入chan中存一个数据;merge2同理;merge3等待merge1,merge2都比较完一次输出到chan中一个int,自己就可以比较一次。所以merge3只会比merge1,merge2中完成慢的那一个慢一次比较

  • flyscue
    2018-03-03 08:14:00

    因为只要排序好了,立即会向merge的接收channel发消息,假定有三个merge。
    假定:
    merge1、merge2是第一阶段。
    merge3是第二阶段。

    只要merge1, merge2有数据输出了,merge3就会立即做排序,它们就像是几乎是同时进行的,所以时间上没有多大差别。

搭建并行处理管道,感受GO语言魅力

通过搭建并行数据处理管道,展示go语言在并发编程方面的优势

19375 学习 · 78 问题

查看课程

相似问题