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

我有一个同时使用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

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

在Java中,执行“ ++++++++”表达式,编译器未报告任何错误并且可以正确执行? - java

我用eclipse编写了这段代码,用war写过,结果为3d。public static void main(String[] args) { double a = 5d + + + + + +-+3d; System.out.println(a); } 参考方案 您的表情可以改写为(5d) + (+ + + + +-+3d) 其中第一个+是应用于两个操作数的…

在Python和C++之间传输数据而无需写入Windows和Unix文件 - python

我有预先存在的python和C ++文件,其中python文件定义了许多点,而C ++代码利用其现有库进行了所需的计算。最终产品是C ++代码写入的文件。我正在寻找一种在python中获取2000点列表的方法,将其传递给函数,然后执行所有C ++代码并输出我需要的文件。其他注意事项。这必须是可以在Linux或Windows机器上工作的东西,并且最少安装新插件…

扩展Python时可以使用C++功能吗? - c++

Python手册说您可以在C和C++中为Python创建模块。使用C++时可以利用类和模板之类的东西吗?它不会与其他库和解释器产生不兼容吗? 参考方案 挂钩函数的实现是用C还是用C++实现都没有关系。实际上,我已经看过一些Python扩展,这些扩展有效利用C++模板甚至Boost库。没问题。 :-)

将Python嵌入C++应用程序 - c++

上下文:我们一直面临的一个持续问题是对我们的市场数据应用程序进行单元测试。这些应用程序坐下来观察从提要中检索到的数据并执行某些操作。一些很难触发的关键事件很少发生,并且测试人员很难在所有情况下验证我们的应用程序是否正常运行,因此我们必须依靠单元测试。这些系统通常通过在事件发生时发出回调(进入我们的应用程序)来工作,然后由我们负责处理此事件。 我设想的解决方案…

从C++调用Python函数 - c++

我正在尝试从C++实现调用Python函数。我以为可以通过函数指针来实现,但是似乎不可能。我一直在使用boost.python完成此操作。假设在Python中定义了一个函数:def callback(arg1, arg2): #do something return something 现在,我需要将此函数传递给C++,以便可以从那里调用它。如何使用boos…