加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 可以并行执行reduceLeft吗?

发布时间:2020-12-16 19:10:08 所属栏目:安全 来源:网络整理
导读:我刚开始学习 Scala,所以请耐心等待:-) 我有一个关于reduceLeft行为的问题.这是一个例子: List(1,2,3,4,5) reduceLeft (_ + _) 我想知道计算是否可以同时进行,例??如: 第一回合: 过程1计算:1 2 过程2计算:4 5 第二轮: 过程1计算:3 3 第三轮: 过程1计
我刚开始学习 Scala,所以请耐心等待:-)

我有一个关于reduceLeft行为的问题.这是一个例子:

List(1,2,3,4,5) reduceLeft (_ + _)

我想知道计算是否可以同时进行,例??如:

第一回合:

>过程1计算:1 2
>过程2计算:4 5

第二轮:

>过程1计算:3 3

第三轮:

>过程1计算:6 9

如果我只使用reduce函数而不是reduceLeft,那至少就是我期望发生的事情.或者reduceLeft真的只做一次减少吗?

((((1 + 2) + 3) + 4) + 5)

这基本上意味着它不能并行执行,如果可能的话,应该总是倾向于减少reduceLeft / Right?

解决方法

答案是肯定的,这很简单:

List(1,5).par.reduce (_ + _)

par方法将列表转换为并行集合.当您在此并行集合上调用reduce时,它将并行执行.

见the parallel collection documentation

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读