技术文章 > Python技术 >  Python基础教程 > 正文

Python中GIL的作用

小妮浅浅

1、说明

GIL是一个互斥锁,它防止多个线程同时执行Python字节码。这个锁是必要的,主要是因为CPython的内存管理不是线程安全的

2、作用分析

Python对变量或数据对象使用引用计数器。通过计算引用的数量,当数量为0时,变量或数据对象被自动释放。

In [1]: import  sys                                                  
 
In [2]: count_var = "test1"                                         
 
In [3]: sys.getrefcount(count_var)                                  
Out[3]: 2
 
In [4]: add_var = count_var                                         
 
In [5]: sys.getrefcount(add_var)                                    
Out[5]: 3

这个引用计数器需要保护,多个线程同时修改这个值可能会导致内存泄漏的SO,我们可以用锁解决这个问题,有时可以添加多个锁来解决,这会导致另一个问题,死锁。

为了避免内存泄漏和死锁问题,CPython使用单锁,即全球解释器锁(GIL),即执行Python字节代码需要GIL,可以防止死锁,但是CPU限制的Python程序是单线程序。

以上就是Python中GIL的作用,希望能对大家有所帮助,更多知识尽在python学习网。

免费视频教程
本教程部分素材来源于网络,版权问题联系站长!
相关文章
  新入门学习python 怎么快熟?
  python中 *= 是什么意思
  python中@是什么意思
  python中如何画火山图
  python如何应用于数据的基础统计分析
  Python Vlookup函数的查询
  python使用Plotly实现动画设计
相关视频章节
  CSS基础-属性选择器
  CSS基础-类选择器
  CSS基础-id选择器
  .CSS基础-派生选择器
  CSS基础-介绍及语法
作者信息
推荐视频
视频教程分类