【发布时间】:2009-08-19 14:01:05
【问题描述】:
我在两个不同的进程中有两个客户端,它们通过 RMI 与服务器进行通信。
我的问题是: 如果两个客户端同时调用服务器的存根会发生什么?
感谢您的宝贵时间, 我
【问题讨论】:
标签: java multithreading rmi
我在两个不同的进程中有两个客户端,它们通过 RMI 与服务器进行通信。
我的问题是: 如果两个客户端同时调用服务器的存根会发生什么?
感谢您的宝贵时间, 我
【问题讨论】:
标签: java multithreading rmi
This tutorial 展示了 RMI 服务器的线程特性(参见任务 7.1)。他们引用了 RMI 规范:
由 RMI 运行时调度的方法 到远程对象实现(一个 服务器)可能会也可能不会在 单独的线程。发起呼叫 从不同的客户虚拟 机器将以不同的方式执行 线程。从同一台客户端计算机 不保证每种方法 将在单独的线程中运行
因此来自不同客户端的调用将导致通过服务器中的不同线程执行。
【讨论】:
默认情况下没有什么不好的 - 这与同时从两个线程调用任何其他对象的方法完全相同。 1 个服务器到多个客户端的模型是 RMI 等网络协议的用途。
如果需要,对服务器内任何共享数据的访问都需要通过同步块进行管理。这取决于服务器在做什么。
【讨论】: