当前位置: 首页 > 图灵资讯 > 行业资讯> python gil是什么

python gil是什么

来源:图灵python
时间: 2024-08-21 22:18:10

1、说明

它是一个全球解释器锁。每个线程在执行时都需要获得GIL,以确保只有一个线程可以在同一时间执行代码,即只有一个线程在同一时间使用CPU,也就是说,多线程不是真正意义上的同时执行。

2、产生原因

(1)Guido van Rossum(吉多·范罗苏姆)创建python时只考虑单核cpu。

(2)解决多线程之间数据完整性和状态同步最简单的方法就是加锁。 所以有了GIL这个超级大锁。

(3)cpython解析只允许GIL全局解析器锁运行程序。

(4)确保cpu只能在同一时间使用一个线程。

(5)以前写cpython解析器的时候考虑cpu情况。

(6)由于大量程序开发人员接受了这种机制,现在代码越来越多,通过c代码解决这个问题并不容易。

3、释放gil锁的时机

(1)遇到像 i/o操作这个 会有空闲时间 cpu闲置的情况会释放Gil

(2)会有一个特殊的ticks来计数 一旦ticks值达到1000 此时释放Gil锁锁 Gil锁在线程之间竞争(说明:

(3)ticks这个值可以设置来延长或缩短获得gil锁的线程使用cpu的时间)

以上是python 在了解了gil的基本用法后,大家都可以找一些gil的例子来练习。更多Python学习指导:python基础教程

(推荐操作系统:windows7系统Python 3.9.1,DELL G3电脑。)

上一篇:

python自动化是什么

下一篇:

python是什么蛇