python共享内存通信_Java – Python共享内存通信

我们有一个用 Java编写的程序和一个用 Python编写的程序,并且需要以乒乓方式将它们组合在一起,每次交换一个长度为100,000的整数数组,并花费大约0.1-1秒来完成它们的工作:

> Java做了一些工作并触发一个长度为100,000的int数组到…

> Python,它做了一些工作并发射一个长度为100,000的新数组回…

> Java,它做了一些工作……等等

注意

>每个程序都需要等待另一个程序才能完成它.

>它们将在同一台Linux机器上运行.

>我们将进行蒙特卡罗模拟,因此速度很重要.

我对Java更熟悉,并且了解共享内存支持的文件方法可能是最快的. This似乎与Java方面相关,但是如何让每个程序等待/阻止另一个程序完成其工作并在另一个开始读取之前更新共享内存?我听说过一种叫做“信号量”的东西,但无法弄明白.

这些是我的后备想法,但也许他们更好?

>带有jnr-unixsocket的Unix域套接字

> Sockets与Speedus

最佳答案 寻找快速中间数据服务器以协助它们之间的通信. Redis会做的伎俩.那里你需要两个数据结构:

>一个列表(您的100,000个项目列表).我们将调用my_project:list作为参考.

>锁.这可以是设置为“Python”或“Java”的Redis字符串.

然后进行以下互动:

> Python和Java都在调查Redis锁.如果它等于“Python”,那就是Python.如果是“Java”,那就是Java了.

>无论哪个程序进入工作模式并对my_project执行任何操作:list,然后将锁定设置为其他程序.

>无限期地重复.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值