スレッドセーフではない共有リソースに依存するタスクを並列化したいことがよくあります。次の非スレッドセーフクラスについて考えてみます。上の地図を作りたいですdata: Vector[String]。
class Processor { def apply: String => String }
基本的に、それぞれがデータのインスタンスとパーティションをn持つスレッドを作成したいと思います。ProcessorScalaの並列コレクションは、並列化は単純なものであるべきだと私を甘やかしてしまいました。ただし、この問題にはあまり適していません。はい、私はアクターを使用できますが、Scalaアクターは非推奨になる可能性があり、Akkaはやり過ぎのようです。
最初に頭に浮かぶのは、同期されたマップThread -> Processorを作成してから、並列コレクションを使用してProcessor、このスレッドセーフなマップで自分を検索することです。もっと良い方法はありますか?