【发布时间】:2015-04-12 22:10:08
【问题描述】:
我有一个 C++ 程序,它使用 C api 来使用我的 Python 库。 Python 库和 C++ 代码都是多线程的。
特别是,C++ 程序的一个线程实例化了一个继承自threading.Thread 的 Python 对象。我需要我的所有 C++ 线程能够调用该对象上的方法。
从我的第一次尝试(我天真地只是从主线程实例化对象,然后等待一段时间,然后调用该方法)我注意到与刚刚创建的对象关联的 Python 线程的执行一旦停止执行回到 C++ 程序。
如果继续使用 Python 执行(例如,如果我调用 PyRun_SimpleString("time.sleep(5)");),则 Python 线程会在后台继续执行,一切正常,直到等待结束并返回 C++。
我显然做错了什么。我应该怎么做才能使我的 C++ 和 Python 成为多线程的 both 并能够很好地相互协作?我之前没有该领域的经验,所以请不要假设任何事情!
【问题讨论】:
标签: python c++ multithreading python-c-api