java - 跨 Java 进程共享对象

标签 java process ipc processbuilder

我正在从主应用程序执行另一个 JVM (java.exe)。有什么方法可以与新创建的进程(在创建时或创建后)共享一个对象(相当大的对象)。

someObject sO= new someObject();

//sO is populated

//Creating new process

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("java  -cp " + tempDir +  jarsInPath  + " " + appMain);

现在我希望 sO 对象可用于 proc 对象表示的进程

ProcessBuilder 是否为此目的提供任何实用程序?

最佳答案

如果要共享对象,最好的方法是使用线程而不是单独的进程。进程不能共享内存(通过 JNI 除外),因此您必须通过文件或通过 RMI 套接字连接以序列化形式来回复制大对象(后者是更好的选择,因为它会导致固有同步) .

关于java - 跨 Java 进程共享对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1437438/

相关文章:

mysql进程没有进程ID

c - 为什么系统调用 signal() 不调用处理程序?

java - 哪个 java 类在 catalina.out 上发出警告

java - 如何用java编写soap客户端?

c++ - 如何从Lua运行进程中读取变量值(获取进程变量值)?

sockets - MPI消息可用性通知

perl - 如何用IPC::Open2过滤大量数据?

java - 获取欧洲冠军联赛球队的国家/地区(Java)

java 从数组列表、词典单词中进行二分搜索

c# - 应用程序崩溃后发生的 WPF 事件