java - 是否可以从 Python 生成 Java 代码,并在两个进程之间进行通信?

标签 java python

编辑:

我最初忘记添加,但真正重要的要求是需要以 .exe 形式交付。我现在使用 PyInstaller 将所有内容压缩为可执行文件,但我不知道当您开始涉及多种编程语言时,所有内容如何组合在一起。

<小时/>

我有一个使用 Python 和 wxWidgets 编写的小 GUI。该程序的真正核心是 CPU 和网络密集型,我使用多处理模块生成一个新进程。这样,GUI 就能保持响应,并且第二个进程可以在自己的内存/处理器空间中自由运行。最后,我使用带有 Multiprocess.Queue 的线程来处理 gui、本身和进程之间的通信。

enter image description here

现在的问题是,Python 在处理主要功能方面稍微慢了一点。因此,我很快用 Java 制作了构建原型(prototype),速度提高了 60% 左右。所以,对于核心逻辑,我想把所有东西都移植到Java上。

但是,我已经用 Python 和 WX 在 Gui 中投入了大量的工作,所以我不想用 Java 重写这方面的工作。所以,我的问题是,我将如何组合这两个独立的系统?

通信的范围在很大程度上是发出启动和停止命令。其余的都是微小的更新,这些更新会反馈到 GUI,只是为了让用户知道它当前正在做什么。

希望一切都有意义!

最佳答案

I forgot to add initially, but the really big requirement is that this need to be deliverable as an .exe.

我认为这几乎排除了 Java 的可能性。虽然可以将一些Java程序变成.exe文件,但它在很多方面都是有问题的......

我认为你最好用 C 或 C++ 编写需要真正快速的东西。您可以将其设为单独的可执行文件,或者(为了获得更好的性能)您可以使用 native 库机制之一进行访问;请参阅http://wiki.python.org/moin/IntegratingPythonWithOtherLanguages

<小时/>

如果您真正想要解决的问题是 GUI 响应能力,那么您应该能够使用 python 线程来完成同样的事情……而只需更少的编码工作。

关于java - 是否可以从 Python 生成 Java 代码,并在两个进程之间进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14544259/

相关文章:

python - Pandas 三向连接列上的多个数据框

java - 如何判断一个图是否有环?

java - 如何全局处理Spring WebSockets/Spring Messaging异常?

java - 子实体引用如何在使用 OSIV 方法(在 View 中打开 session )的应用程序中返回 LazyInitializationException?

java - 使用 AppEngine 模块时,Java 程序如何辨别哪个 "backend"是哪个?

python - 如何调用python子目录中包含的selenium webdriver测试

python - 如何在 Ray 中使用全局变量

Python 请求没有给我与我的浏览器相同的 HTML

java - Spring MVC 注解配置

python - 已安装 PySide 但无法导入它 : "no module named PySide"