我们有一个 Java 程序和一个 Python 程序,需要让它们以乒乓的方式组合在一起,每次交换一个长度为 100,000 的整数数组,并花费 ~ 0.1 - 1 秒来完成它们的工作:
- Java做了一些工作并触发了一个长度为 100,000 的 int 数组...
- Python,它做了一些工作并将一个长度为 100,000 的新数组返回到...
- Java,它做了一些工作......等等
注意
- 每个程序都需要等待另一个程序完成它的一部分。
- 它们将在同一台 Linux 机器上运行。
- 我们将进行蒙特卡罗模拟,所以速度很重要。
我更熟悉 Java,并且了解共享内存支持文件方法可能是最快的。 这似乎与 Java 方面有关,但是我如何让每个程序等待/阻止另一个程序完成其工作并在另一个程序开始读取之前更新共享内存?我听说过一种叫做“信号量”的东西,但无法弄清楚。
这些是我的后备想法,但也许它们更好?
- 带有jnr-unixsocket 的Unix 域套接字
- Speedus插座_