2

Scala でリフレクションを並列処理と組み合わせて使いたいのですが、リフレクションのスレッド セーフの欠如に悩まされています。そのため、各タスクを(スレッドではなく)独自のプロセスで実行することを検討しています。これを行う簡単な方法はありますか?

たとえば、.parスレッドではなくプロセスを生成するように構成する方法はありますか? forkまたは、クロージャーを取得して新しいプロセスで実行する関数はありますか?

編集:先物は明らかに良い方法です。ただし、それらを別々のプロセスで実行する方法を理解する必要があります。

編集 2: Akka の「fork-join-executor」ディスパッチャーを使用している場合でも、同時実行の問題が発生しています。これは、プロセスをフォークする必要があるように聞こえます。ただし、ManagementFactory.getRuntimeMXBean().getName()Futures 内で実行すると、すべてが同じプロセス内にあるように見えます。これは、実際のプロセス レベルの並列処理を確認する正しい方法ですか? 正しい Akka ディスパッチャーを使用していますか?

編集 3: リフレクションが最悪だと思います。残念ながら、必要なライブラリで使用されています。

4

2 に答える 2

4

Scala ActorsまたはAkkaを調べましたか? 並列および非同期プログラミング以外に Scala を使用する理由はありません。それは言語に焼き付けられています。これらの施設をチェックしてください。必要なものが必ず見つかると思います。

于 2013-10-24T23:53:19.927 に答える
0

There's little information as regards the problem you're trying to solve here...previous answers are pretty much on the ball - look at Actors etc...Akka and you may find that you don't need to necessarily do anything too complicated. Introspection/reflection in a multi-threaded environment usually means a messy and not well thought-out strategy in terms of decomposing the problem in hand.

于 2013-10-25T00:12:11.627 に答える