【问题标题】:How do we simulate the test cases for RMI concurrent call of remote object by two clients我们如何模拟两个客户端 RMI 并发调用远程对象的测试用例
【发布时间】:2017-05-27 00:16:41
【问题描述】:

我们如何模拟两个客户端RMI并发调用远程对象的测试用例。考虑到方法未同步,两个客户端正在通过相同方法调用相同的远程对象。我知道这会造成数据不一致。我们如何才能真正运行这个测试用例?

【问题讨论】:

  • 如果会造成数据不一致,则说明您的远程对象存在严重问题。
  • 如果两个客户端拥有相同的远程对象,并且同时从这个远程对象调用相同的方法。骨架将在同一个对象上创建两个线程。现在两个线程将同时访问同一个方法。如果有任何数据结构正在更新,我认为它会造成数据不一致。
  • 仅当您的远程对象出现严重问题时。它应该自我同步,以便它是线程安全的。 NB RMI Skeletons 已经十八年没有使用了。
  • 我想我必须再次阅读 RMI :)
  • 我的意思是应该确保在你的远程对象中正确同步。而不仅仅是对此发表意见。

标签: java unit-testing rmi java-threads


【解决方案1】:

这可以使用 ConcurrentJunitRunner API 来实现,并进行相同的调用两个测试用例。还有ConcurrentSuite API,可以同时运行一组测试类。

@RunWith(ConcurrentJunitRunner.class)
@Concurrent(threads = 2)

【讨论】:

  • 这个答案可以帮助您处理您提到的示例(并发测试用例),请将您的问题重新构建为特定场景/案例 - 理论术语对于 n 个场景(n - 1-> ∞)
  • @Srikanth谢谢!我想测试两个客户端对远程对象的 RMI 并发执行。我会试着举一个例子。我是 Java 编程新手。但我不明白如何运行 API。首先我得到例子会更好
  • @ManinderSingh,上述方法是可能的。 1.) 将您的问题重新构建为并发单元测试用例场景,而不是理论 2.) 如果有帮助,请标记为已回答。
  • 如何标记答案。我无法赞成您的回答。有什么办法吗?
  • 要标记为已回答,您可以点击上下投票下方的勾号图标。
猜你喜欢
  • 1970-01-01
  • 2016-08-06
  • 1970-01-01
  • 2016-12-14
  • 1970-01-01
  • 2010-10-10
  • 1970-01-01
  • 1970-01-01
  • 2011-09-25
相关资源
最近更新 更多