2

私の Java プログラムでは、OtpNodeと「名前付き」OtpMBoxを作成します。この mbox を介してメッセージを受信するたびに、時間のかかる操作を実行してから、応答メッセージを送り返す必要があります。この操作には時間がかかるため、mbox に送信される後続のメッセージはすぐには処理されません。

だから私はJavaスレッドを使いたい - 受信したメッセージごとに1つ。私の質問は、受信したメッセージごとに新しいOtpMBoxも作成する必要がありますか、それとも元の OtpMBox をすべてのスレッド間で共有できますか?

4

4 に答える 4

1

質問を理解しているかどうかわかりません。返信を送信できるようにするためだけにスレッドごとに OtpMBox が必要ですか、それともこの長時間実行される操作でさらにメッセージを受信できるようにする必要がありますか?

前者の場合は、元の mbox を再利用できます。送信操作は同期されます。

後者の場合は、Erlang の方法で実行し、スレッドごとに mbox を作成し、erlang 側の呼び出し元に pid を知らせて、その mbox にデータを送信できるようにすることをお勧めします。これは、jinterface には選択的な受信がなく、メッセージは最初にウェイクアップしたスレッドに到達するためです。

于 2009-07-20T07:27:19.783 に答える
0

私はこのようなことにはあまり詳しくありませんが、いくつかの計算を行うことができると思います.JavaスレッドごとにOtpMBoxを実行するオーバーヘッドと、さまざまなスレッドに作業を依頼する制御システム(Javaで記述)のオーバーヘッドがあります。それらから結果を取得します。私は Java はそのための良いツールではないと信じています )

OtpMBox を使用して「ワーカー」Java スレッドを開始し、OtpMBox の pid を erlang システムに送信する Java スレッド「スーパーバイザー」を実行することをお勧めします。

-- すみません、英語で

于 2009-03-06T11:18:42.697 に答える
0

erlang が得意とすることを行うために Java を使用しようとしているようです。安全な軽量マルチプロセッシング。処理に Java を使用する必要がある理由はありますか?代わりに erlang で実行できますか? または、逆に、Java がとにかくスレッドを実行する場合、なぜ erlang を使用しているのですか。この質問に答えるには、おそらくより多くの情報が役立つと思います。

于 2009-04-01T02:51:50.823 に答える