受GIL影响的线程化Python

由于GIL是一个围绕解释器的锁,它会影响编译的Python吗? 我想知道是否有可能通过在执行它之前编译我的python来超越cpython固有的多线程局限性。

希望这是有道理的,我不会错过某些明显或误解GIL如何工作/影响执行的内容。

谢谢


正如丹尼尔在评论中所说,这取决于你如何“编译”代码。

例如,使用Jython运行代码的确可以解决GIL带来的限制。

另一方面,使用像py2exe这样的东西没什么区别,因为它实际上只是将CPython包装在你的代码中。


Jython没有GIL。

IronPython没有GIL。

你可以用cython编译你的python代码,然后是否使用gil或者不依赖。 如果你将所有的python变量转换为cython类型,你可以with nogil块运行你的代码,因为你明确地释放了GIL,所以你将没有GIL。 如果你没有在nogil块中运行,你将会受到cpython的GIL的影响。 更多在cython文档中:http://docs.cython.org/src/userguide/external_C_code.html#acquiring-and-releasing-the-gil

有关python和GIL的更多信息,请在此处阅读:http://www.jeffknupp.com/blog/2013/06/30/pythons-hardest-problem-revisited/

链接地址: http://www.djcxy.com/p/86469.html

上一篇: threaded Python affected by the GIL

下一篇: PyPy vs Cpython, will either one drop GIL and support POSIX Threads?