【发布时间】:2019-08-07 21:25:26
【问题描述】:
我有一个用 Kivy 编写的 Python 应用程序,它使用 C++ 程序进行高速计算,然后它返回一个值,我的 Python 应用程序使用它。
C++ 程序封装在 PyBind11 中并导入到应用程序中,然后从 Python 中调用。
我的问题是当 C++ 程序执行时,我的应用程序会停止一小会儿,我仍然希望在后台进行。
我天真地认为这可以通过线程化 C++ 调用来解决,但仔细想想,我认为问题在于 GIL。我必须解锁 GIL,我该如何实现?
【问题讨论】:
-
如果你有一个多线程应用程序,那么如果你的 c++ 代码没有解锁 GIL,你就不会从多线程中获得太多的速度
-
请添加一个minimal reproducible example,显示您的 C++ 和 Python 代码如何交互以及如何处理线程。否则我们在这里进行毫无意义的讨论,因为不知道,我们不能说任何具体的事情。
标签: python c++ multithreading gil