【发布时间】:2011-08-11 00:55:54
【问题描述】:
我有一个使用 Python 和 C++ 代码的 GNU Radio 应用程序。我希望能够发出事件的 C++ 代码。如果它们在同一个范围内,我通常会使用一个简单的布尔值,但代码是分开的,以至于需要某种形式的共享内存。有问题的代码对性能至关重要,因此需要一种有效的方法。
我最初考虑的是 Python 和 C++ 都可以访问的共享内存段。因此我可以在 python 代码中设置一个标志并从 C++ 中检查它。由于我只需要一个简单的标志来暂停 C++ 代码,信号量就足够了吗?
为了清楚起见,我需要从 Python 设置一个标志,C++ 代码将简单地检查这个标志,如果设置了,则进入一个繁忙的循环。
那么尝试在 Python/C++ 之间实现共享内存段是一种合理的方法吗?信号量呢?在Linux上,哪个更容易实现?
谢谢!
【问题讨论】:
-
共享内存方法遇到的主要问题是一个程序看到另一个程序写入的值。内存访问语义就是这样,C++ 代码可能需要很长时间才能看到 Python 代码在某处插入内存的值。