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

Mr.*_*nce 11 c++ python linux ipc

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

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

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

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

谢谢!

Jos*_*see 10

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

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


Jak*_*yer 5

为什么不打开unix socket?或者使用DBus