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

    python gil是什么

    小妮浅浅小妮浅浅2021-03-17 10:19:34原创2630

    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电脑。)

    专题推荐:python gil
    品易云
    上一篇:python是什么蛇 下一篇:python自动化是什么

    相关文章推荐

    • python pydoc是什么• python title是什么• python module的使用• python while是什么• python round()函数是什么• python是什么蛇

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网