Python的全局解释锁(GIL)

什么是全局解释锁?

我们所说的全局解释锁是一把互斥锁。简单来说,就是这个机制只允许一个线程控制python解释器。

由于GIL的存在,导致,即使是在多核心cpu的多线程的框架下也只允许一次只运行一个线程。

GIL解决了python中的什么问题?

python利用引用计数的变量进行内存管理,引用计数变量需要在两个线程同时增加减少从竞争条件中得到保护,如果发生情况,1、导致内存泄漏,永远不会释放;2、当一个对象的引用还存在的情况下释放内存,会导致python程序崩溃或者出现诡异的bug。

posted @ 2018-11-07 17:40  棉拖  阅读(464)  评论(0编辑  收藏  举报