PyPy vs Cpython,会不会放弃GIL并支持POSIX线程?

鉴于GIL限制pythons支持真正线程的能力,是否有可能将它从当前的python实现中剥离出来,以便语言最终可以支持真正的多线程。 此外,假设GIL被丢弃,这是否意味着多核线程最终会来到像Python和Ruby这样的脚本/解释语言?


你的问题是有缺陷的。 Python支持线程就好了。 事实上,当你在* nix下运行的Python程序中创建一个线程时,它可能会创建一个额外的pthreads线程,而不会提出任何问题。 唯一的限制是Python代码不会并行运行(但它并行运行,交错运行等)。 不在GIL之下的代码,比如几乎所有的I / O,都不妨碍其他线程运行Python代码。

至于去除GIL ......这很难。 就像,真的很难 。 你和我可以认为它是不可行的(嘿,至少我们会惊喜,如果一些超人成功)。 其他的实现(Jython,IronPython)没有GIL,但是他们的方法对于CPython来说并不实用(并且对于PyPy来说也不容易),并且他们不能完全替代CPython,因为它们落后了很多,不支持C扩展,不能移植到更奇特的平台等。

也就是说,一些PyPy开发人员正在开发一个STM解决方案(最新更新),它将从GIL中释放PyPy。 CPython另一方面? 即使使用STM,我也不认为有机会,特别是考虑到潜在的ABI和API损坏时。

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

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

下一篇: Python GIL and threads synchronization