GIL全局解释器锁

欢迎指正

致力于自动化运维体系和运维技术的研究实践 | 青蛙兄blog

关注Python、GOlang语言在国内的推广、应用 | 青蛙兄blog

CPython

CPython是特指C语言实现的Python,就是原汁原味的Python。

之所以使用CPython这个词,是因为Python还有一些其它的实现,比如Jython,就是Java版的Python,还有烧脑的PyPy,使用Python再把Python实现了一遍。

如下是官方对CPython的说明:

CPython is Guido van Rossum’s reference version of the Python computing language. It’s most often called simply “Python”; speakers say “CPython” generally to distinguish it explicitly from other implementations.

CPython在解释器进程级别有一把锁,叫GIL全局解释器锁

GIL保证CPython进程中,只有一个线程执行字节码,甚至是在多核CPU的情况下,也是如此

CPython中

IO密集型,由于线程阻塞,就会调度其他线程

CPU密集型,当前线程可能会连续的获得GIL,导致其他线程几乎无法使用CPU

IO密集型,使用多线程,CPU密集型,使用多线程,绕开GIL

新版CPython正在努力优化GIL的问题,但不是移除

如果非要使用多线程的效率问题,请绕行,选择其他语言erlang、Go等

注释:

Erlang 是一种多用途编程语言,主要用于开发并发和分布式系统。它最初是一种专有的编程语言,Ericsson 使用它来开发电话和通信应用程序。

未经允许不得转载:青蛙兄博客 » GIL全局解释器锁

赞 (2)

热门推荐