假设我有一个采用整数的 C(++) 函数,并且它使用 python api 绑定到 (C)python,所以我可以从 python 调用它:
import c_module
c_module.f(10)
现在,我想并行化它。问题是:在这种情况下 GIL 是如何工作的?假设我有一个要处理的数字队列,并且一些工人(threading.Thread
)并行工作,他们每个人都调用从队列中取出的c_module.f(number)
位置。number
与通常情况下的不同之处在于,当 GIL 锁定解释器时,现在您不需要解释器进行评估c_module.f
,因为它是编译的。所以问题是:在这种情况下,处理真的是并行的吗?