【问题标题】:race condition in RMI java - 2 client 1 serverRMI java中的竞争条件 - 2客户端1服务器
【发布时间】:2009-08-19 14:01:05
【问题描述】:

我在两个不同的进程中有两个客户端,它们通过 RMI 与服务器进行通信。

我的问题是: 如果两个客户端同时调用服务器的存根会发生什么?

感谢您的宝贵时间, 我

【问题讨论】:

    标签: java multithreading rmi


    【解决方案1】:

    This tutorial 展示了 RMI 服务器的线程特性(参见任务 7.1)。他们引用了 RMI 规范:

    由 RMI 运行时调度的方法 到远程对象实现(一个 服务器)可能会也可能不会在 单独的线程。发起呼叫 从不同的客户虚拟 机器将以不同的方式执行 线程。从同一台客户端计算机 不保证每种方法 将在单独的线程中运行

    因此来自不同客户端的调用将导致通过服务器中的不同线程执行。

    【讨论】:

    • 谢谢布赖恩,我对您的回答还有另一个问题:因为来自 2 个不同客户端的调用将在不同的线程中执行,这保证了如果我的 RMI 对象是无状态的,则包装 RMI 对象是无状态的出色地?再次感谢
    • 顺便说一句,喜欢公司名称... OOPS 咨询
    【解决方案2】:

    默认情况下没有什么不好的 - 这与同时从两个线程调用任何其他对象的方法完全相同。 1 个服务器到多个客户端的模型是 RMI 等网络协议的用途。

    如果需要,对服务器内任何共享数据的访问都需要通过同步块进行管理。这取决于服务器在做什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-26
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 2010-12-31
      相关资源
      最近更新 更多