使用Java RMI,序列化对象到底什么时候通过网络传输?

发布于 2024-08-01 14:26:27 字数 1437 浏览 7 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时光沙漏 2024-08-08 14:26:27

您的示例似乎存在一些问题。

我假设 Thread.wait() 实际上是 this.wait(),因为 Thread 上没有这样的方法。 并且应该在用于执行同步的同一对象上调用等待。

假设这样,当客户端1调用lock.wait()时,同步块上的监视器被释放。 这意味着客户端 2 可以访问该方法,并最终会阻塞在同一个等待方法上。 当其他线程在同一 MyServer 实例上调用 notification() 时,wait() 将释放。

至于序列化,发生在调用该方法之前。 它可能发生在调用此方法的 RMI 代码中。

There seems to be a couple of issues with your example.

I assume Thread.wait() is actually this.wait(), since there is no such method on Thread. And the wait should be called on the same object as is used to do the synchronization.

Assuming this, when Client 1 calls the lock.wait(), the monitor on the synchronization block is released. This means that Client 2 can access the method and will eventually block at the same wait method. The wait() will release when some other thread calls a notify() on the same instance of MyServer.

As for serialization, that occurs before this method is called. It would have occurred within the RMI code which calls this method.

究竟谁懂我的在乎 2024-08-08 14:26:27

bar 参数在与调用 foo 方法的请求相同的请求中传输,该请求是 RMI 协议。

The bar parameter is transmitted in the same request as the request to invoke the foo method, which is part of the RMI protocol.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文