1.全局解释锁
如题: Python的多线程为什么不能利用多核处理器?
全局解释器锁(Global Interpreter Lock)是计算机程序设计语言解释器用于同步线程的一种机制,它使得任何时刻仅有一个线程在执行。
即便在多核处理器上,使用 GIL 的解释器也只允许同一时间执行一个线程,常见的使用 GIL 的解释器有CPython与Ruby MRI。
可以看到GIL并不是Python独有的特性,是解释型语言处理多线程问题的一种机制而非语言特性。
2.Python的解释器
Python是一门解释器语言,代码通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点。
Python程序的解释和执行过程简图:
-
CPython
CPython是主流版本的解释器,这个解释器是使用C语言编写的,也是使用最为广泛的解释器,可以方便地和C/C++的类库进行交互,因此也是最受关注的解释器。
-
Jython
一种由java语言编写的python解释器,是将python编译成Java字节码然后执行的一种解释器,可以方便地和Java的类库进行交互。
-
IronPython
将Python代码解释为.Net平台上运行