理解Python GIL

作者: 78c40b03ee4e | 来源:发表于2019-03-11 22:49 被阅读48次

    前言

    根据维基百科GIL,全局解释器锁是一种机制,解释器通过这种机制(获取全局解释器锁)来限制同一个时间点只允许一个线程执行,即使是多核环境下.这样保证了多线程编

    什么是GIL

    根据维基百科GIL,全局解释器锁是一种机制,解释器通过这种机制(获取全局解释器锁)来限制同一个时间点只允许一个线程执行,即使是多核环境下.这样保证了多线程编程的安全.

    GIL的优点

    提高单线程程序的执行速度 更易于集成c扩展模块 GIL的缺点

    无法充分利用多核 多进程与多线程

    多线程资源共享,意味着数据的安全性遇到挑战,而多个进程之间的数据是独立的.由于多线程的资源共享就不可避免的遇到线程安全问题.即同一时刻,必须保证只有一个线程对共享资源进行修改.加锁就是一种同步机制.

    细粒度锁:程序员自己控制加锁和解锁,比如java 粗粒度锁:解释器从语言层面上维护一个全局的锁机制来保证线程安全. 比如cpython 如果想充分利用多核的资源,取而代之的使用python中的多进程模块 multiproccsing.

    参考:

    http://www.cnblogs.com/mindsbook/archive/2009/10/15/thread-safety-and-GIL.html http://www.dabeaz.com/python/UnderstandingGIL.pdf

    小编推荐一个学python的学习qun 740,3222,34

    无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

    相关文章

      网友评论

        本文标题:理解Python GIL

        本文链接:https://www.haomeiwen.com/subject/lkxwpqtx.html