1

ESRIコンポーネント(COMベース、JIntegraでラップ)を使用するJVMプロジェクトに取り組んでいます。クライアントは、JVMで動作し、JavaコードにアクセスできるJARファイルを要求しました。Scalaを使いたいのですが、ライブラリがScalaの俳優とどれだけうまく連携するのか心配です。特に、COMとJavaがオブジェクトをあるスレッドから別のスレッドに渡すために使用するさまざまなメカニズムについて心配しています。

誰かがこれを経験したことがありますか?彼らはいいプレーをしますか?

編集:明確化のため

ESRIDBでI/Oを実行すると、CPU使用率が約15%であることに気付きました。各行を読み取り、その行を別のアクターに渡して解析したいと思います。次に、DBから一度に複数のスレッドを読み取ることができます。問題は、ESRIのライブラリを使用して取得された各行が、実際にはJavaでラップされたCOMオブジェクトであるということです。

4

1 に答える 1

1

その場合、俳優はあなたにとって正しいパラダイムではないかもしれません。理想的には、アクター間のメッセージは不変であり、アクターの内部状態のみが変更されます。アクターに行を指定してから、アクターに行をインプレースで変更させたいようです。

その場合でも、スレッドとロックを使用する場合と同じ同時実行リスクがあります。これは、この特定の問題に対するより良い解決策である可能性があります。

一方、行が不変であり、アクターが行から派生したものを(それらを変更せずに)返す場合、それは「正常に機能する」はずであり、Javaのさまざまな方法については特に心配しません。およびCOMはスレッドを参照します。

于 2010-04-22T13:09:31.953 に答える