我正在使用 RMI 来实现一些分布式算法,并且由于我们正在传输相当大的对象,我想要一些关于 RMI 何时通过网络传输序列化对象的精度。
假设我有一个具有以下方法的 Remote 类。
class MyServer extends Remote {
public synchronized void foo (Bar bar) {
...
Thread.wait();
...
}
}
现在,我有两个(或更多)RMI 客户端调用 MyServer.foo 方法。当客户端 1调用它时,它在Thread.wait()中被阻塞。然后,客户端 2调用foo并被阻塞,因为客户端 1 仍在同步的foo方法中。
现在,问题是:Client 2调用的bar参数何时通过网络传输?只有一次客户端 2可以实际进入foo方法或之前,当它被阻塞时?
额外的问题:这是(传输对象的时间)是由 RMI 规范强制执行的行为,还是特定于实现的行为?