归并Iterable
来源:10-2 外部排序分析

慕娘7243799
2018-08-12
归并Iterable 意思多个结点的数据 不是分别读吗? 我看讲的是Iterable一直读一个某一个结点里的内容,我的理解应该是每次4个放在优先队列 然后通过优先队列输出,所以老师的意思是4个结点的Iterable同时读然后一个一个放入优先队列吗但又如何保证他们同步呢??
写回答
1回答
-
不用做同步。每个节点都读一个数放入优先队列。因为是iterable,只有外面,就是归并排序的用户,想要获取下一个元素的时候,才会触发动作。触发的动作是提供优先队列里最小的元素出去,并且从那个元素所对应的数据源里获取下一个元素,放回优先队列。
有关这个知识点,我后来在go语言搭建并行处理管道这门免费课中,作出了类似的实现。我们也可以看一下从代码层面进一步理解。00
相似问题