0

私はP2Pアーキテクチャを備えたマルチプレイヤーカードゲームを開発しています。それは私の決定ではありません。プロジェクトは私の大学の分散システムコースの教授から委託されました。

教授が課すもう1つの制約は、JavaRMIテクノロジーを使用してプレーヤー間の通信レイヤーを実装することです。

Java RMIが「すぐに」並行性を管理するかどうか、つまり、リモートオブジェクトでメソッドを呼び出すと、オブジェクトが自動的に「ロック」され、同じメソッドを同時に呼び出すことができるオブジェクトがないかどうかがわかります。

メソッドを同期済みとして宣言するのは良い解決策でしょうか?

ありがとう

4

2 に答える 2

2

リモートオブジェクトでメソッドを呼び出しても、オブジェクトはロックされません。

同期するメソッドを宣言することは、アクセスを制御する1つの方法です。ただし、リモートでアクセス可能なすべてのオブジェクトのすべてのメソッドを同期するように宣言することはお勧めできません。実際、実行していることの詳細によっては、不必要な同時実行のボトルネックやデッドロックのリスクが生じる可能性があります。オブジェクトの動作と相互作用についてより慎重に考える必要があります。

于 2011-06-15T09:30:05.157 に答える
1

メソッドの同期は良いスタートです。これを行うとパフォーマンスが低下しますが、あなたの場合、これはまったく問題ありません。

このJavaRMIと同期メソッドを見てください

于 2011-06-15T09:29:46.703 に答える