本地方法调用是否等待 java RMI 中的远程 return 值?
Does local method call wait for remote return value in java RMI?
我有一个关于本地和远程方法如何在 Java RMI 中协作的问题。
这是理想情况:
localClass.setValue(server.getValue());
localClass.setValue(..)
是等待来自服务器的 return 值,还是我必须在本地使用某种同步来确保它?
如果服务器需要 5 秒来执行会发生什么情况 getValue()
?
客户端等待 5 秒,如果您想设置超时异常,您必须自己完成,就像 [=10 中已经建议的那样=]个问题。
不完全是。
参数在调用方法之前从左到右求值。
因此 localClass.setValue()
在 server.getValue()
返回的参数值可用之前甚至不会被调用。所以 客户端 会一直等待,然后 然后 调用 localClass.setValue()
。等待的不是 setValue()
,而是存根对 server.getValue()
的调用。
您不必自己做任何事情。
我有一个关于本地和远程方法如何在 Java RMI 中协作的问题。 这是理想情况:
localClass.setValue(server.getValue());
localClass.setValue(..)
是等待来自服务器的 return 值,还是我必须在本地使用某种同步来确保它?
如果服务器需要 5 秒来执行会发生什么情况 getValue()
?
客户端等待 5 秒,如果您想设置超时异常,您必须自己完成,就像 [=10 中已经建议的那样=]个问题。
不完全是。
参数在调用方法之前从左到右求值。
因此 localClass.setValue()
在 server.getValue()
返回的参数值可用之前甚至不会被调用。所以 客户端 会一直等待,然后 然后 调用 localClass.setValue()
。等待的不是 setValue()
,而是存根对 server.getValue()
的调用。
您不必自己做任何事情。