美文网首页
2020-02-07论python的GIL

2020-02-07论python的GIL

作者: 七天七念 | 来源:发表于2020-02-07 13:25 被阅读0次

python是个有趣的编程语言,GIL也是python绕不过去的一个点。
随着深入学习的见识,越来越发现GIL已经深入到了python的本质上,这也是python3里面也不能除掉gil的原因。
gil:一种python的同时只能运行一个线程的保护机制,太多太多的库为了简单而使用了这个机制来保证数据的唯一性。
特点:当遇到python代码运行的时候,python线程运行会自动保持只有一个线程再运行,当遇到非python运行的时候,
自动停止这种机制。

深入思考超越gil的解决办法之后,我发现应当有3种办法能解决这种问题吧。
第一种,最传统的方式是利用异步+多进程的方式来解决,这是python最流行的主流方式。

那么缺点是什么?资源的消耗太大,变量的不稳定性,表述为多进程变量的共享在长期运行的情况下的不稳定

第二种,非主流的,经过深入思考研究之后感觉可行的方案,python转C 转python再运行,也即是cython。
结合python的多线程进行运行,python的多线程是真多线程,这是需要明白的一点。

那么缺点是什么?变量的不可控性,表述为python本身的变量跟转译之后的变量不能操作

第三种,这是离python本身最遥远的解决办法,python版本的再编译,python本身是在多线程的底层代码上嵌入了
gil,那么只要取消这一层底层代码就可以解决这个问题了。
但是python3光编译代码 就几十万行了。。。
那么缺点是什么?这也是难度最大最不可行的方案,问题并不是python这本身程序的问题,而是太多太多的库依赖于gil了,而
python的库本身就有很多是依靠靠爱发电的模式进行开发的,这才是python3也没有办法超脱gil的本质原因。

相关文章

  • 2020-02-07论python的GIL

    python是个有趣的编程语言,GIL也是python绕不过去的一个点。随着深入学习的见识,越来越发现GIL已经深...

  • GIL

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

  • Python day28_GIL 深拷贝浅拷贝

    GIL(全局解释器锁) GIL面试题如下 描述Python 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 锁: 全局解释器锁,作...

  • python之理解GIL

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

  • 008 12. python提高-1

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

  • python多线程

    python基础之多线程锁机制 GIL(全局解释器锁) GIL并不是Python的特性,它是在实现Python解析...

网友评论

      本文标题:2020-02-07论python的GIL

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