我有一些python代码,它严重依赖于greenlets。我可以使用gevent或eventlet。
我已经将代码的某些部分打包成了C扩展,但这些调用不会让位于其他的greenlet。有没有可能编写我的扩展,让它在不需要GIL的情况下将控制权交给其他python线程?
发布于 2018-03-20 17:22:01
您可以使用普通的PyObject_CallFunction(eventlet/greenlet.sleep)将控制权交给其他绿色线程。它必须像任何其他Python代码一样在GIL锁定的情况下运行。
如果没有GIL,就不能运行Python代码。(您可以这样做,但它很快就会倾斜并损坏内存)。
https://stackoverflow.com/questions/49358984
复制相似问题