使用Java | | Scala重用正在运行的流程

使用Java | | Scala重用正在运行的流程,java,scala,process,Java,Scala,Process,主要目标=缩短执行过程的时间 希望通过运行一些程序来创建系统进程,并重用它 比如说 command = "/client.exe -ip=127.0.0.1 -port=1234" + somecommand 执行它 Process(command).lineStream.mkString 执行的结果非常缓慢 如何运行client.exe一次,并重用此过程。每次只需将一些新命令发送到现有进程client.exe 有没有办法提高执行速度 谢谢。实际上,您需要的是进程间通信和/或远程过程调用。您

主要目标=缩短执行过程的时间

希望通过运行一些程序来创建系统进程,并重用它

比如说

command = "/client.exe -ip=127.0.0.1 -port=1234" + somecommand
执行它

Process(command).lineStream.mkString
执行的结果非常缓慢

如何运行client.exe一次,并重用此过程。每次只需将一些新命令发送到现有进程client.exe

有没有办法提高执行速度


谢谢。

实际上,您需要的是进程间通信和/或远程过程调用。您可以使用几种方法来实现这一点。其中包括:

  • 使用REST/HTTP可能是最简单也是最好的解决方案

  • 使用Akka,支持远程参与者,这意味着您可以在主进程上生成一个参与者,并从其他进程访问它,以及发送/接收消息

  • 如果您使用的是*nix系统,则可以使用原始套接字

  • 使用消息队列,检查


  • 如果client.exe有顺序执行,并且它被设计为在工作完成后退出,那么您不能做太多。应编写可执行文件以处理进程间通信。

    对于其余部分==播放。我有一个繁重的程序,我应该使用它。如果你有一个复杂的Web应用程序,如果你不需要额外的Web功能,比如缓存、会话、模板渲染等等。但是我的主要问题是如何以最好的方式运行一些类似程序的进程。关于“进程间通信”的例子有吗?你有client.exe源代码并且可以管理它吗?或者client.exe是任何普通的可执行文件?我的意思是,如果您有client.exe源代码,快速解决方案是制作一个dll而不是可执行文件,并从scala中重用它,在这种情况下,动态库将预加载到内存中,您可以任意重用它。