我实际上有两个关于Java RMI和线程同步的问题:
1)如果我将RMI远程方法实现为同步,它们是否保证互斥?我需要确保没有两个我的RMI方法(提供给客户端的方法)同时执行.
2)我有一个服务器定期执行的方法.它用于清理.当远程客户端运行/使用任何RMI方法时,我必须确保不执行此特定方法.此外,当该方法运行时,不应该进行RMI调用.即客户必须等待.知道我怎么能这样做吗?我读过有关Locks的内容,但我不知道如何在这种情况下使用它们.
我已经考虑过将RMI方法实现为静态并在RMI接口中包含清理方法,但它似乎并不是解决问题的优雅方法.
我还在RMI接口中将cleanup方法编写为synchronized.当我运行它进行测试时,方法之间似乎没有冲突,但我无法确定.
谢谢你的时间和答案.