理解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

    python之理解GIL 1、GIL简介 GIL的全称为Global Interpreter Lock,全局解释器...

  • PYTHON GIL 理解

    在理解GIL前 首先要理解下python的线程。 上图是线程的执行过程。可以看到 GIL确保一个时刻只有一个线程执...

  • 理解Python GIL

    前言 根据维基百科GIL,全局解释器锁是一种机制,解释器通过这种机制(获取全局解释器锁)来限制同一个时间点只允许一...

  • Python day28_GIL 深拷贝浅拷贝

    GIL(全局解释器锁) GIL面试题如下 描述Python GIL的概念, 以及它对python多线程的影响?编写...

  • GIL

    一,GIL的概念 python全局解释器锁。 二,GIL产生的原因 GIL 并不是 Python 语言的特性,它是...

  • 线程安全,GIL全局锁

    1. GIL是什么? GIL不是Python特性GIL是实现Python解释器(Cpython)时引入的概念,而C...

  • Python高级语法1:GIL锁&浅拷贝&深拷贝

    一、GIL锁 1.1、GIL面试题:描述Python GIL的概念, 以及它对python多线程的影响?编写一个多...

  • python入门系列:多线程

    python中的GIL GIL(Global Interpreter Lock),就是一个锁。 Python中的一...

  • python中的GIL详解

    原文链接 GIL并不是Python的特性,Python完全可以不依赖于GIL。 ​ GIL 锁: 全局解释器锁,作...

  • 008 12. python提高-1

    12.1. GIL GIL(全局解释器锁) GIL面试题如下 描述Python GIL的概念, 以及它对pytho...

网友评论

    本文标题:理解Python GIL

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