什么是全局解释器锁?为什么它是一个问题?关于从 Python 中删除 GIL 的争论已经很多,我想了解为什么这如此重要。我从来没有写过......
什么是全局解释器锁?为什么它是一个问题?
关于从 Python 中删除 GIL 的争论已经很多,我想了解为什么这如此重要。我自己从未编写过编译器或解释器,所以不要吝惜细节,我可能需要它们来理解。
为什么 Python(CPython 和其他)使用 GIL
来自 http://wiki.python.org/moin/GlobalInterpreterLock
在 CPython 中,全局解释器锁(GIL)是一个互斥锁,用于阻止多个本机线程同时执行 Python 字节码。此锁是必需的,主要是因为 CPython 的内存管理不是线程安全的。
如何从 Python 中删除它?
像Lua一样,也许Python可以启动多个VM,但是python没有这样做,我猜应该还有其他原因。
在Numpy或者其他python扩展库中,有时候将GIL释放到其他线程可以提高整个程序的效率。