一尘不染

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

linux

我有一个同时使用Python和C 代码的GNU Radio应用程序。我希望能够表示事件的C
代码。如果它们在同一范围内,我通常会使用一个简单的布尔值,但是代码是分开的,因此需要某种形式的共享内存。有问题的代码对性能至关重要,因此需要一种有效的方法。

我最初考虑的是Python和C 均可访问的共享内存段。因此,我可以在python代码中设置一个标志,并从C
中对其进行检查。由于我只需要一个简单的标志来暂停C ++代码,信号量就足够了吗?

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

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

谢谢!


阅读 333

收藏
2020-06-07

共1个答案

一尘不染

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

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

2020-06-07