Run java code in multiple jvm instances

前端 未结 2 592
日久生厌
日久生厌 2021-02-10 16:25

I have a windows service application and a client which communicates with service using RMI. I need to do some concurrency testing with multiple clients but I need every client

2条回答
  •  甜味超标
    2021-02-10 17:20

    Yes, you can do this using JDI - VirtualMachineManager (which you can get by calling Bootstrap.virtualMachineManager();) provides (at least one) launching connector. You can then call launch(); on this connector which provides you with a VM mirror for the VM it creates. This mirror then lets you remotely execute methods on this VM.

    You can set up as many remote VMs using this method as you choose, though obviously there's a relatively big performance penalty for doing things this way, and it's a fair bit of effort. Unless the effort would be astronomical, I'd personally advocate fixing the code to guarantee thread safety (using ThreadLocal) and then you do away with the need to worry about JDI (or a similar setup.)

提交回复
热议问题