我已经构建了一个基于文件下载器RMI客户端 - 服务器的应用程序。在那,我不明白不同客户的工作。这些文件位于服务器端,RMI在其侧面具有等效的代理服务器(称为存根)。我已经为此应用程序使用了10个客户端和1个服务器。
问题1-我的问题是 多个客户端同时 进行RMI调用 从注册表中查找后,客户端以什么顺序播种/提供 他们的文件?表示基础服务算法---
Is it Round Robin Algorithm OR FIFO algorithm OR some other
?
我无法解决这个问题,当我执行我的代码时,我发现正在同时下载相应的文件,好像正在复制文件而不是下载文件。
问题2-单个服务器如何为这么多客户提供服务 什么顺序使文件同时下载?
另外,我的服务器端方法不同步,不需要同步!
答案 0 :(得分:2)
问题1-我的问题是当多个客户端在从注册表中查找后同时进行RMI调用时,客户端以何种顺序播种/提供文件?
无序。它们都在同一时间进行。
表示基础服务算法---是循环算法
没有
OR FIFO算法
没有
或其他一些?
没有。没有订购。
我无法解决这个问题,当我执行我的代码时,我发现正在同时下载相应的文件,好像正在复制文件而不是下载文件。
我不知道'复制而不是下载'意味着什么,但“同时”确切地描述了这种情况。
问题2-单个服务器如何为这么多客户端提供服务以及文件以何种顺序同时下载?
通过多线程或熟练使用多路复用I / O或异步I / O.它没有指定。没有指定任何内容。你不能假设的一件事是它是单线程的并且以任何方式顺序化。
另外,我的服务器端方法不同步,不需要同步!
另一种假设,又一次完全无效。 RMI规范中没有任何内容证明这一信念是正确的。您不能假设RMI远程对象是单线程的。