python gil是什么

2025-12-01 0 89,861

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数值达到100 这个时候释放Gil锁 线程之间开始竞争Gil锁(说明:

(3)ticks这个数值可以进行设置来延长或者缩减获得Gil锁的线程使用cpu的时间)

以上就是python gil的介绍,大家在了解基本的用法后,可以去找一些gil的实例进行练习。更多Python学习指路:python基础教程

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:以上部本文内容由互联网用户自发贡献,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。投诉邮箱:3758217903@qq.com

ZhiUp资源网 python基础 python gil是什么 https://www.zhiup.top/1956.html

python是什么蛇
下一篇: python是什么蛇

相关