【发布时间】:2011-06-19 21:42:36
【问题描述】:
我的申请由两部分组成 -
Java 中的一些 GUI 逻辑。 本机代码(主要是 Delphi)——GUI 实现本身。
Java 使用本机代码进行琐碎的操作,例如打开窗口和响应用户输入事件 - 实现是通过 JNI 完成的。
我有兴趣将双方划分为不同的流程 - 在不挂gui的情况下在它们之间实现IPC的最佳方法是什么? 我倾向于 TCP 套接字或共享内存,但在我深入研究之前,我很想听听一些意见。 性能和简单的实现是我主要关心的问题。
提前致谢。
【问题讨论】:
-
以我有限的经验,套接字可以很好地解决这个问题。如果您的 GUI 是 Swing GUI,则需要注意在后台线程上完成进程间通信。
-
我不明白你为什么要这样做。多个流程对我来说听起来更复杂。
-
Delphi 无法在 64 位操作系统上编译。再加上原生代码在极端情况下容易崩溃。
-
@curious 它会在不同的进程中崩溃。 64 位编译器即将推出。 FreePascal 非常好,支持 64 位。在 64 位操作系统上运行 32 位代码有什么问题?
-
一个 32 位进程被限制为 4GB(甚至更小),我的应用程序很容易因为 OutOfMemory 异常而崩溃。即使 64 位编译器出现,它也会是新鲜的,因此容易出错。当只有本机端崩溃时,其他进程可以识别并优雅地退出或恢复。当我说我有充分的理由这样做时,请相信我。
标签: java delphi ipc multiprocessing native-code