0

我正在开发一款具有 P2P 架构的多人纸牌游戏,这不是我的决定,该项目是由我所在大学的分布式系统课程教授委托的。

教授施加的另一个约束是使用Java RMI技术来实现玩家之间的通信层。

我会知道 Java RMI 是否“开箱即用”地管理并发,换句话说,我会知道当我在远程对象上调用方法时,该对象是否自动“锁定”并且没有对象可以同时调用相同的方法。

可以将方法声明为同步是一个好的解决方案吗?

谢谢

4

2 回答 2

2

在远程对象上调用方法不会锁定该对象。

声明要同步的方法是控制访问的一种方法。然而,简单地声明所有远程可访问对象上的所有方法要同步是一个坏主意。事实上,根据您正在做的事情的细节,它可能会造成不必要的并发瓶颈和/或死锁的风险。您需要更仔细地考虑对象的行为和交互。

于 2011-06-15T09:30:05.157 回答
1

同步您的方法是一个好的开始。这样做会降低性能,但在你的情况下,这完全没问题。

看看这个Java RMI 和同步方法

于 2011-06-15T09:29:46.703 回答