问答详情
源自:3-7 性能分析

merge时间问题

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

提问者:Prnyself 2018-03-01 17:53

个回答

  • 幕布斯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就会立即做排序,它们就像是几乎是同时进行的,所以时间上没有多大差别。