我有一个存储在“服务器”上的类,多个客户端可以调用此方法。该方法返回一个类。现在,当客户端调用此类中的访问器方法时,例如设置访问器方法。我希望服务器上的对象能够在所有其他客户端之间更新和同步。
如何使用:
public synchronized setStatus(String s) { this.status = s; }
在java中实现这一点。
谢谢
最佳答案
synchronized
关键字不执行此功能,而是 synchronized
关键字尝试获取当前对象的内在锁。
让所有客户端将自身导出为 Remote
对象,并向服务器注册更新。当您的某个客户端更新服务器时,服务器将调用所有已注册的远程
客户端,要求它们刷新。
这可以通过观察者模式来实现。如果您的所有客户端都实现了 java.util.Observer 接口(interface),并且服务器或(如果您的类是 Remote)您关心更新的类可以扩展java.util.Observable
。当类/服务器更新时,可以通知观察者新值,这将节省客户端向服务器请求新值的一些网络延迟。
关于Java RMI方法同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2611754/