pythongil是什么
pythongil是什么
1、说明
是全局解释器锁,每个线程在执行时候都需要先获取GIL,保证同一时刻只有一个线程可以执行代码,即同一时刻只有一个线程使用CPU,也就是说多线程并不是真正意义上的同时执行。
2、产生原因
(1)GuidovanRossum(吉多·范罗苏姆)创建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的时间)
以上就是pythongil的介绍,大家在了解基本的用法后,可以去找一些gil的实例进行练习。更多Python学习教程请关注IT培训机构:千锋教育。
相关推荐HOT
更多>>python包的导入方式有几种
python包的导入方式有几种本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、from...import导入frompackageimportmodule1,mo详情>>
2023-11-08 23:58:44python参数是什么
python参数是什么1、概念Python中函数的参数是不变的对象。Python函数具有灵活的参数形式,但默认参数必须指向不变的对象。如果默认参数是可变...详情>>
2023-11-08 19:48:30python使用items()遍历键值对
python使用items()遍历键值对字典可以用来存储各种方式的信息,所以有很多方式可以通过字典的所有键值对、键或值。说明1、即使通过字典,键值对...详情>>
2023-11-08 19:23:48python按行读取文件的方法比较
python按行读取文件的方法比较1、read方法默认会把文件的所有内容一次性读取到内存。如果文件太大,对内存的占用会非常严重2、readline方法,re...详情>>
2023-11-08 18:22:27