我们有一个Java程序和一个Python程序,需要以乒乓方式使它们配合工作,每次交换长度为100,000的整数数组,并且完成工作需要花费大约0.1-1秒钟:
- Java 执行一些操作并将长度为100,000的int数组发送到...
- Python 执行一些操作并向其发送一个新的长度为100,000的数组...
- Java 执行一些操作...等等
请注意:
- 每个程序都需要等待另一个程序完成其操作。
- 它们将在同一台Linux机器上运行。
- 我们将进行蒙特卡罗模拟,因此速度很重要。
我更熟悉Java,并且了解基于共享内存的文件方法可能是最快的。这篇文章似乎适用于Java方面,但我应该如何让每个程序等待/阻塞对方完成其工作并在其开始读取之前更新共享内存?我听说过一个叫做“信号量”的东西,但弄不明白。
这些是我的备选方案,但也许它们更好?
- 使用jnr-unixsocket的Unix域套接字
- 套接字与Speedus