【发布时间】:2017-05-05 21:22:50
【问题描述】:
请注意,我只能使用 Python 2.6。我有一个 Python 2.6 应用程序,它使用使用 boost-python 构建的 C++ 多线程 API 库。我的用例只是从 C++ boost 线程执行 Python 函数回调,但尽管进行了许多不同的尝试并研究了所有可用的在线资源,但我没有找到任何可行的方法。所有提议的解决方案都围绕着不同的功能组合:Py_Initialize*、PyEval_InitThreads、PyGILState_Ensure、PyGILState_Release,但在尝试了所有可能的组合之后,实际上没有任何效果,例如
- Embedding Python in multi-threaded C++ applications 带代码 here
- PyEval_InitThreads in Python 3: How/when to call it? (the saga continues ad nauseum)
因此,这个问题是:如何从 C++ 启动和运行 Python 线程?我基本上想:创建它,使用 Python 目标函数对象运行它,然后忘记它。
这可能吗?
【问题讨论】:
-
可以生成一个新进程吗?
-
不,我必须在我所附加的解释器应用程序进程中创建一个线程。
标签: python c++ multithreading boost-python