知行编程网知行编程网  2022-12-07 20:00 知行编程网 隐藏边栏  14 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python gil是什么的相关知识,希望可以帮到处于编程学习途中的小伙伴

什么是 python-gil


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操作等idle时间,gil会在cpu空闲时释放

(2) 将有一个特殊的刻度用于计数。一旦ticks值达到100,此时释放Gil锁,线程开始竞争Gil锁(注:

(3)可以设置ticks的值来延长或减少获取Gil锁的线程使用cpu的时间)


以上就是python gil的介绍,大家在了解基本的用法后,可以去找一些gil的实例进行练习。

更多Python学习指路:


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

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享