为什么Java虚拟机中没有GIL?为什么Python需要这么糟糕?

问题:

我希望有人可以提供一些关于Java虚拟机的根本区别的洞察力,它允许它很好地实现线程,而不需要全局解释器锁(GIL),而Python需要这样的邪恶。

回答:

Python(语言)不需要GIL(这就是为什么它可以完美地在JVM [Jython]和.NET [IronPython]上实现,以及那些实现多线程的自由)。 CPython(流行的实现)一直使用GIL来简化编码(特别是垃圾收集机制的编码)和非线程安全的C编码库的集成(过去一直是一堆; – )。
Unladen Swallow项目除了其他雄心勃勃的目标之外,还为plan一个无GIL的Python虚拟机引用了该网站。“此外,我们打算删除GIL并修复Python中的多线程状态。相信这是可能的,通过实施更复杂的GC系统,像IBM的Recycler(Bacon等人,2001)。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Why is there no GIL in the Java Virtual Machine? Why does Python need one so bad?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

5 + 5 =