当前位置: 首页 > 面试题库 >

用于Python和C ++应用程序的简单但快速的IPC方法?

徐鑫鹏
2023-03-14
问题内容

我有一个同时使用Python和C 代码的GNU Radio应用程序。我希望能够表示事件的C

代码。如果它们在同一范围内,我通常会使用一个简单的布尔值,但是代码是分开的,因此需要某种形式的共享内存。有问题的代码对性能至关重要,因此需要一种有效的方法。

我最初考虑的是Python和C 均可访问的共享内存段。因此,我可以在python代码中设置一个标志,并从C

中对其进行检查。由于我只需要一个简单的标志来暂停C ++代码,信号量就足够了吗?

为了清楚起见,我需要从Python设置一个标志,C ++代码将仅检查该标志,如果已设置,则进入繁忙循环。

那么,尝试在Python / C ++之间实现共享内存段是一种合理的方法吗?信号量怎么样?在Linux上,哪个更容易实现?

谢谢!


问题答案:

假设这是一台计算机上的两个独立的应用程序,并且您需要不想要套接字的良好实时性能。我会在共享内存中使用一个标志,并且可能使用一个信号量来确保两个程序都不能一次访问该标志。该库可使用Python访问信号量和共享内存,并支持Python版本2.4-3.1(非3.0):http
://semanchuk.com/philip/posix_ipc

编辑:建议更改为使用信号灯来保护共享内存中的标志



 类似资料:
  • 问题内容: 我有2个应用程序,一个是用C编写的,另一个是用Java编写的,它们假定在同一台机器上运行。在它们之间实施IPC的最佳方法是什么? 最好的含义是可移植性,最小的用户意识(防火墙弹出窗口…)等。 问题答案: 我将使用Sockets over loop back开始。这样,您就可以发送文本或二进制数据,并在一个进程开始或结束时彻底处理。延迟大约为20-50微秒,具体取决于您对数据进行的处理以

  • 问题内容: 我有一个在后台运行的C ++进程,该进程很少会生成“事件”,因此在同一框中运行的Python进程将需要拾取。 C端的代码必须尽可能轻巧。 Python端是只读的。 实现必须是跨平台的。 发送的数据非常简单。 我有什么选择? 谢谢 问题答案: zeromq-仅此而已。将消息编码为字符串。 但是,如果要使用protobuf从库中进行序列化,它将为Python和C ++生成类。您可以在任一端

  • 问题内容: 我有一些C#代码需要调用Python脚本数千次,每次都传递一个字符串,然后期望返回。可以使用任何版本的Python运行python脚本,因此我不能使用Iron python。建议使用IPC命名管道。我对此没有经验,并且在弄清楚如何在C#和Python之间执行此操作时遇到了麻烦。这是一个简单的过程,还是我正在寻找可观的工作量?这是解决我的问题的最好方法吗? 问题答案: 使用zeromq。

  • 本文向大家介绍php简单实现快速排序的方法,包括了php简单实现快速排序的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php简单实现快速排序的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的php程序设计有所帮助。

  • 我们在第 1 章已经看到了一个简单的 Hello World 的例子,相信你已经成功地把它跑起来了,下面我们对这个程序进行讲解。回顾一下这个程序: $ cat hello.py from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name_

  • 问题内容: 我只需要一个简单的示例,说明如何轻松地将python图标放置在我的系统托盘上。这意味着:我运行该程序,没有窗口出现,只有一个托盘图标(我有一个png文件)出现在系统托盘中,当我右键单击它时,菜单上会显示一些选项(当我单击时,在一个选项上,将运行一个函数)。那可能吗?我根本不需要任何窗户… 示例/代码片段非常感谢!:D 问题答案: 对于Windows和Gnome 来呀!wxPython是