gpt4 book ai didi

file - 如何在Scala中并行写入进程文件和写入结果?

转载 作者:行者123 更新时间:2023-12-02 01:15:45 27 4
gpt4 key购买 nike

这是我的 previous 的后续问题。

假设我并行处理我的文件。现在我想将处理结果写入文件。由于结果不适合内存,我不能等到所有文件的处理完成后再写入结果。我必须以某种方式并行处理和写入。

例如:假设我有带数字的文件。文件大小约为500M。文件数量约为 200。每个文件都适合内存,但所有文件都不适合。现在我想将在这些文件中找到的所有偶数 数字写入另一个文件。

如何在 Scala 中做到这一点(使用 Futures 和 Scala parallel collections)?

最佳答案

在某些时候你必须同步写作。如果您不想阻塞其他线程,一种可能性是使用 actor 将结果写入文件。这可能看起来像这样:

class FileWriterActor(path: String) extends Actor {

val file = ... // init FileWriter

// this is how you implement an akka actor
// plain scala actors look a bit different
def receive = {
case x: MyResult => file.write(x.toString)
}

override def postStop() = file.close()
}

// usage
val result = ... // calculation stuff
fileWriter ! result

关于file - 如何在Scala中并行写入进程文件和写入结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11589735/

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