我打算编写一个Python脚本,该脚本利用我正在处理的一些多线程c++代码。 C++代码不会在python运行时中修改任何值。 python的全局解释器锁会阻止c++代码中的线程并行执行吗?如果是这样,有什么好的资源可以帮助您解决这个问题?

python脚本将仅调用c++代码公开的接口(interface):void notify_btn_pressed(int btn_id)。 Python和c++代码将没有其他交互。

最佳答案

GIL是Python解释器锁。 Python字节码解释器不知道您的C++库在后台做什么。它没有任何方法可以防止您的C++代码创建其他线程,也不会尝试阻止您这样做。

这是一些background on the GIL and native code解释的。这是more general information about the GIL。这些引用适用于Python 3.x,但Python 2.x的工作方式相同。您可以在URL中将3更改为2,以查看相应的(几乎相同)Python 2.x文档。

10-08 08:37
查看更多