为什么在python中有全局解释器锁,但Java,C++中却没有

如题所述

Python语言并没有GIL。
CPython(以及试图与CPython完全兼容的)实现中有GIL。PyPy的主线中也有GIL。
Jython、IronPython都没有GIL。

Java语言并没有GIL。JVM规范也没有GIL。
目前JVM最主要的实现HotSpot VM中没有使用GIL,而是在VM内使用了一系列细粒度锁来实现VM内各种功能分别的同步需求。但其实HotSpot VM源自一个名为Strongtalk的Smalltalk VM,在Stongtalk VM以及最早期的HotSpot VM中是有GIL的,通过多年的努力研发才把它替换为细粒度锁。

C++语言没有GIL。C++的语言功能中也没有什么需要用一把全局大锁来总控的功能,所以实现中也没有C++ runtime library用“GIL”的(虽然有通过解释器实现的C++,所以这个“I”在这些实现里也算是成立把,但没有GIL)。
温馨提示:答案为网友推荐,仅供参考
相似回答