gpt4 book ai didi

scala - 这个scala并行数组代码是线程安全的吗?

转载 作者:行者123 更新时间:2023-12-04 16:49:05 25 4
gpt4 key购买 nike

我想对任务使用并行数组,在开始编码之前,我想知道这个小片段是否是线程安全的:

import collection.mutable._

var listBuffer = ListBuffer[String]("one","two","three","four","five","six","seven","eight","nine")
var jSyncList = java.util.Collections.synchronizedList(new java.util.ArrayList[String]())
listBuffer.par.foreach { e =>
println("processed :"+e)
// using sleep here to simulate a random delay
Thread.sleep((scala.math.random * 1000).toLong)
jSyncList.add(e)
}
jSyncList.toArray.foreach(println)

是否有更好的方法来处理具有并行集合的内容,并在其他位置累计结果?

最佳答案

您发布的代码非常安全;但是我不确定前提:为什么您需要在非并行集合中累积并行集合的结果?并行集合的全部要点之一是它们看起来像其他集合。

我认为并行集合也将提供seq方法来切换到顺序集合。因此,您可能应该使用它!

关于scala - 这个scala并行数组代码是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5920837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com