作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以 Scala 2.9 最近出现在 Debian 测试中,带来了新奇的并行集合。
假设我有一些代码相当于
def expensiveFunction(x:Int):Int = {...}
def process(s:List[Int]):List[Int} = s.map(expensiveFunction)
ParList
来并行化它。 ...但令我惊讶的是,没有! (只是
ParVector
,
ParMap
,
ParSet
...)。
def process(s:List[Int]):List[Int} = {
val ps=scala.collection.parallel.immutable.ParVector()++s
val pr=ps.map(expensiveFunction)
List()++pr
}
ParList
? ParList
, 有没有Vectors
? (我的意思是在 C++ 领域std::list
超过 std::vector
)。 最佳答案
List
当您想要模式匹配(即 case x :: xs
)并进行有效的前置/迭代时, s 非常有用。但是,当您想要快速按索引访问、分割成 block 或加入(即 xs ::: ys
)时,它们就不是很好了。
因此,当您认为这种事情(拆分和合并)正是高效并行所需要的东西时(拥有一个并行的 List
)没有多大意义。采用:
xs.toIndexedSeq.par
关于list - 处理 scala.collections.parallel 中令人惊讶的 ParList 缺失问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6642210/
我是一名优秀的程序员,十分优秀!