java - java RMI中本地方法调用是否等待远程返回值?

标签 java synchronization rmi

我有一个关于 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/

相关文章:

synchronization - 删除线程后我可以使用 __syncthreads() 吗?

java - RMI 和 JMX 套接字工厂

Java RMI NotBoundException?

java - scala for 循环值不是 Int 的成员

Java注释: Changing Data using Anotations

java - 可重入锁可以完全替代同步吗?

android - 同步数据库 Mysql SQLite

java - 关于Linux系统中运行的Spring RMI

java - 如何使用netty中的SimpleChannelPool在连接错误时关闭 channel ?

java - Fluentlenium 和 cucumber 测试未开始