wxpython是否在单独的进程上运行并释放GIL(全局解释器锁)?

时间:2017-07-04 20:17:11

标签: wxpython

我想知道wxPython与在不同内核上运行的东西的交互,以及wxPython在运行时是否释放GIL。

我假设当我启动一些命令时需要一段时间,wxPython启动wxWidgets c ++代码,该代码在multiple cores和某种方式releases the GIL上运行,直到任务完成然后回来。但是我没有任何依据。这会发生吗?

引擎盖下究竟发生了什么?

1 个答案:

答案 0 :(得分:1)

每当调用wx C ++函数或方法时,GIL都会自动释放并重新获取。这可能有点过分,因为有很多事情很快且不会阻塞,而且不能释放/重新获取GIL可能更有效,但这种方法确保我们不会错过这样做会阻止的东西。

此外,只要有事件调度到Python事件处理程序,或者调用Python中覆盖的虚拟方法等,就会在进入该代码之前获取GIL,然后再次释放。