两个线程访问scala中的同一个文件



我有一个shell脚本,它可以将文件复制到一个位置,另一个脚本可以拾取这些文件进行进一步处理。我想使用多线程在Scala中使用线程池并行地获取文件。

但是,如果有两个线程和两个文件,那么这两个线程都会拾取同一个文件。我试过很多次这个程序,结果总是这样我需要线程并行地拾取不同的文件

有人能帮我吗?我可以使用哪些方法?如果你能给我指一个正确的方向就足够了。

我认为可以使用并行序列来并行处理。你不必自己处理这个逻辑。例如,代码可能是这样的:

newFiles:Seq[String] = listCurrentFilesNames()
newFiles.par.foreach { fileName =>
processFile(fileName)
}

此代码将并行执行。您可以将线程的数量设置为特定的数量,如下所述:https://stackoverflow.com/a/37725987/2201566

您也可以尝试使用actors-例如-作为参考-https://github.com/tsheppard01/akka-parallel-read-csv-file