|
|
1
2
C库作为Python程序的一部分运行,正如您所建议的,可以在执行大量计算之前释放gil,而不需要访问Python对象,这样做确实允许在后台继续进行I/O,从而实现更多的并行性。但是,除非库是针对Python环境的,否则它可能不会,即使它是针对Python环境的,也不能保证它会释放gil。 如果库不是专门为Python设计的,它们就不会发布gil。在这种情况下,您可以通过在管理gil的C包装器中包装适当的函数来实现很多功能。 如果库不是专门针对Python的,或者文档中没有提到gil,那么确保这一点的唯一方法就是检查源代码。您的C代码可以使用 functions defined in Python's C API . |