gpt4 book ai didi

c++ - 并发 : Are Python extensions written in C/C++ affected by the Global Interpreter Lock?

转载 作者:IT老高 更新时间:2023-10-28 20:33:56 26 4
gpt4 key购买 nike

Python 的强项之一是易于编写 C 和 C++ 扩展以加速代码的处理器密集型部分。这些扩展可以避免 Global Interpreter Lock 还是它们也受到 GIL 的限制?如果不是,那么这个“易于扩展”比我之前意识到的更具有 killer 锏。我怀疑答案不是简单的是或否,但我不确定,所以我在 StackOverflow 上问这个问题。

最佳答案

是的,对 C 扩展的调用(从 Python 调用的 C 例程)仍受 GIL 约束。

但是,您可以手动在 C 扩展中释放 GIL,只要在将控制权返回给 Python VM 之前小心地重新声明它即可。

有关信息,请查看 Py_BEGIN_ALLOW_THREADSPy_END_ALLOW_THREADS 宏:http://docs.python.org/c-api/init.html#thread-state-and-the-global-interpreter-lock

关于c++ - 并发 : Are Python extensions written in C/C++ affected by the Global Interpreter Lock?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/651048/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com