我有一个Shell脚本,可以将文件复制到一个位置,而另一个脚本可以将这些文件拾取以进行进一步处理。我想使用多线程在使用线程池的Scala中并行拾取文件。
但是,如果有两个线程和两个文件,则它们都将拾取同一文件。我已经尝试过很多次了,但最终总是这样。 我需要线程并行拾取不同的文件。
有人可以帮我吗?我可以使用什么方法?如果您能指出正确的方向,那就足够了。
答案 0 :(得分:1)
我认为您可以使用并行序列并行进行处理。 您不必自己处理此逻辑。对于前。代码可能是这样的:
newFiles:Seq[String] = listCurrentFilesNames()
newFiles.par.foreach { fileName =>
processFile(fileName)
}
此代码将并行执行。并且您可以将线程数设置为此处提到的特定数:https://stackoverflow.com/a/37725987/2201566
答案 1 :(得分:0)
您也可以尝试使用演员-例如-供您参考-https://github.com/tsheppard01/akka-parallel-read-csv-file