java - 在多个 jvm 实例中运行 java 代码

标签 java testing concurrency jvm

我有一个 Windows 服务应用程序和一个使用 RMI 与服务通信的客户端。 我需要对多个客户端进行一些并发测试,但我需要每个客户端都运行到不同的 jvm 实例,因为它的代码中有一些静态变量。 我可以这样做吗?有任何想法吗?

最佳答案

是的,您可以使用 JDI 执行此操作 - VirtualMachineManager (您可以通过调用 Bootstrap.virtualMachineManager(); 获得)提供(至少一个)launching connector .然后,您可以在此连接器上调用 launch();,它会为您提供 VM mirror。对于它创建的虚拟机。然后,此镜像允许您在此 VM 上远程执行方法。

您可以根据需要使用此方法设置任意数量的远程 VM,但显然以这种方式执行操作会导致相对较大的性能损失,而且需要付出相当大的努力。除非付出的努力是天文数字,否则我个人主张修复代码以保证线程安全(使用 ThreadLocal),然后您就无需担心 JDI(或类似设置)。

关于java - 在多个 jvm 实例中运行 java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16714043/

相关文章:

java - 安卓 : Send Multiple images as file to server using retrofit in an array

java - 在多线程中使用wait()和notify()

ios - 如何在ios中找到一个元素的 child ?

android - 如何在android(Eclair)中运行CTS测试?

concurrency - 为什么带有填充字段的结构工作得更快

wcf - 为什么 WCF 将并发连接数限制为 5?

具有相等项的集合中的 Java 比较器

java - ActiveMQQueue 无法解析为 spring-boot-sample 类型

JavaFX 媒体 - 暂停();方法使 MediaPlayer 快进?

ios - Xcode Server Bot 问题 : warning. 生成服务错误。问题:路径 'some/path' 的存档格式不正确