python与GIL
一、GIL是什么,它为什么会存在 python被人诟病最多的大概就是它的GIL全局锁了,但我今天要为它正名,这与python本身没有关系,而是与它的解释器有关系。 我们知道,python代码编写好,最终运行的是一个.py的文件,运行代码的过程,其实就是让解释器把我们编写的代码解释给机器能识别的语言的过程。可以解释python代码的解释器有很多,如: cpython(官方解释器) ipython(基于cpython的一种解释器,交互更强,其他与cpython一样) pypy(采用JIT(Just In Time)也就是即时编译编译器,对Python代码执行动态编译,目的是加快执行速度) jython(Java平台上的解释器) ironpython(与jython类似,只不过ironPython是运行在微软.Net平台上的Python解释器) 官方使用的解释器是cpython,也就是当我们从官网下载安装python的时候,就已经默认使用python解释器是cpython。而GIL就是cpython在解释python代码的时候给它加的一个锁,GIL全称是Global Interpreter Lock(全局解释器锁),所以GIL与cpython有关,与python无关,你可以换一种没有GIL的解释器。 那么GIL为什么会存在呢,官网的解释是:GIL是一个互斥锁