如果我将一个函数映射到一个序列上,那么序列将在多大程度上并行实现 如果我从一个并行产生的序列中读取一个线程?
如果我将它包装在一个seque中,这会有所不同:
(seque 30 (pmap do-stuff (range 30000)))
VS
(pmap do-stuff (range 30000))
答案 0 :(得分:1)
pmap不保证它将在它的输入序列上读取多远 - 可能不会比计算它需要的距离太远。
(seque 30 ...)将实现并缓存来自pmap的输出序列的多达30个元素。那在逻辑上必须至少是输入序列的前30个。如果不考虑pmap的实现,我不能说多远,你可能不应该依赖它。
我很好奇为什么你需要知道这一点。函数执行时的细节,特别是在pmap中,是您通常想要抽象掉的东西。如果是好奇,那很好。但是,如果你依赖于do-stuff函数的一些副作用,你就是在做错了(tm)。