我有一个关于 Java RMI 中本地和远程方法如何协作的问题。 这是理想的情况:
localClass.setValue(server.getValue());
localClass.setValue(..)
是否等待服务器的返回值,或者我是否必须在本地使用某种同步来确保它?
如果服务器需要大约 5 秒来执行 getValue()
,会发生什么?
最佳答案
不完全是。
在调用方法之前,从左到右评估参数。
因此,在 server.getValue()
返回的参数值可用之前,甚至不会调用 localClass.setValue()
。因此,客户端会一直等待,然后然后调用localClass.setValue()
。等待的不是 setValue()
,而是 stub 对 server.getValue()
的调用。
您不必自己做任何事情。
关于java - java RMI中本地方法调用是否等待远程返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47698925/