首页 > 编程语言 >python的GIL全局解释器锁

python的GIL全局解释器锁

时间:2023-02-22 01:12:29浏览次数:59  
标签:解释器 python doing 线程 全局 GIL

global interpreter lock -- 全局解释器锁

CPython 解释器所采用的一种机制,它确保同一时刻只有一个线程在执行 Python bytecode。此机制通过设置对象模型(包括 dict 等重要内置类型)针对并发访问的隐式安全简化了 CPython 实现。给整个解释器加锁使得解释器多线程运行更方便,其代价则是牺牲了在多处理器上的并行性。

However, some extension modules, either standard or third-party, are designed so as to release the GIL when doing computationally intensive tasks such as compression or hashing. Also, the GIL is always released when doing I/O.

创建一个(以更精细粒度来锁定共享数据的)“自由线程”解释器的努力从未获得成功,因为这会牺牲在普通单处理器情况下的性能。据信克服这种性能问题的措施将导致实现变得更复杂,从而更难以维护。

标签:解释器,python,doing,线程,全局,GIL
From: https://www.cnblogs.com/tangjicheng/p/17143033.html

相关文章

  • python一记
    作者:荷兰人吉多.范罗苏姆python:蟒蛇特点:跨平台/解释型/交互式/弱类型/面向对象新建myPython.py并:print('hello,world')print可以输出的内容:数字,字符,布尔表达式,运......
  • Python报错: KeyError: 'HOME'——mac中的os.environ['HOME'],windows写法:os.environ['H
    windows写法——os.environ['HOMEPATH']对应的mac写法——os.environ['HOME']windows:os.environ['HOME']会报错—— KeyError:'HOME'  改成os.environ['HOMEPATH'......
  • Python中的命名规范
    变量命名准则您应当尽量使自己的变量命名含义清晰,不要使用混乱的字母、数字、表情等意义不明的字符来命名变量一般来说,您不应当使自己的风格频发变换——如果可能,请将整......
  • 使用Python和SAS Viya分析社交网络|附代码数据
    原文链接:http://tecdat.cn/?p=7303原文出处:拓端数据部落公众号 最近我们被客户要求撰写关于社交网络的研究报告,包括一些图形和统计输出。   本示例使用Python和......
  • Python、MATLAB股票投资:ARIMA模型最优的选股、投资组合方案与预测
    全文链接:http://tecdat.cn/?p=31651原文出处:拓端数据部落公众号分析师:XingmingXu基于当前统计的股票数据选择最优的选股方案和投资组合方案,以及预测股票价格未来一段时......
  • Python求快速幂
    #mod:最后结果要取的模deffast_pow(base,n,mod):res=1ifbase==0: return0ifn<0:base,n=1/base,-nwhilen:......
  • 使用Python对数据备份文件进行整理
    最近公司上了一个转储服务器,用于存储所有应用系统的数据文件备份,由于每天的备份文件都放在一个固定的文件夹,不需要的文件也会传过来,日后不方便整理,于是便使用Python脚本,将......
  • python+playwright 学习-6.截图使用
    前言playwright除了可以截取当前屏幕,还可以截长图,也可以对某个元素截图,这点非常棒。screenshot截图这是捕获屏幕截图并将其保存到文件中的快速方法:page.screenshot(p......
  • Python 多线程中的 Join Lock 和 Event
    Join函数的作用Join函数的作用主要是提供当前线程阻塞,等待线程结束后,在执行下一个线程,保护线程通畅有序执行如下当没有使用join时,主线程结束了子线程还在运行defd......
  • python-基础:线程
    3.线程安全一个线程中可以有多个子线程,且线程可以共享进程中所有的资源多个线程去操作一份资源,高概率性的发生数据混乱的情况,如下:示例importthreadingloop=1000......