课程
/后端开发
/Go
/搭建并行处理管道,感受GO语言魅力
还是不明白为什么merge的时间是一样的 求解释
2018-03-01
源自:搭建并行处理管道,感受GO语言魅力 3-7
正在回答
个人理解:并行中,merge1,merge2,merge3 都在等待自己的 输入 chan 中有数据存入。merge1比较一次就会往自己的输出chan,也就是merge3的输入chan中存一个数据;merge2同理;merge3等待merge1,merge2都比较完一次输出到chan中一个int,自己就可以比较一次。所以merge3只会比merge1,merge2中完成慢的那一个慢一次比较
因为只要排序好了,立即会向merge的接收channel发消息,假定有三个merge。假定:merge1、merge2是第一阶段。merge3是第二阶段。只要merge1, merge2有数据输出了,merge3就会立即做排序,它们就像是几乎是同时进行的,所以时间上没有多大差别。
举报
通过搭建并行数据处理管道,展示go语言在并发编程方面的优势
1 回答merge 时只有一个输入ready了,有没问题
2 回答关于排序时间
1 回答在相同时间内,执行单个没有打印出来hello,而多并发的时候可以打印,这是为什么?
2 回答channel 是 routine 间通信的方式,为什么在main函数中读取的时候可以直接读呢?
2 回答读取问题