Python面试:什么是GIL

news2025/1/18 8:44:01

1. GIL (Global Interpreter lock)可以避免多个线程同时执行字节码。

import threading

lock = threading.Lock()

n = [0]

def foo():
  with lock:
    n[0] = n[0] + 1
    n[0] = n[0] + 1

threads = []
for i in range(5000):
  t = threading.Thread(target=foo)
  threads.append(t)

for t in threads:
  t.start()

print(n)

在这里插入图片描述

2. 使用dis操作来分析字节码

import dis

def update_list(l):
  l[0] = 1

dis.dis(update_list)

输出为:
4 0 LOAD_CONST 1 (1)
2 LOAD_FAST 0 (l)
4 LOAD_CONST 2 (0)
6 STORE_SUBSCR
8 LOAD_CONST 0 (None)
10 RETURN_VALUE

“STORE_SUBSCR”,可见只有单节字码操作。

def incr_list(l):
  l[0] += 1

dis.dis(incr_list)

输出为:
2 0 LOAD_FAST 0 (l)
2 LOAD_CONST 1 (0)
4 DUP_TOP_TWO
6 BINARY_SUBSCR
8 LOAD_CONST 2 (1)
10 INPLACE_ADD
12 ROT_THREE
14 STORE_SUBSCR
16 LOAD_CONST 0 (None)
18 RETURN_VALUE
可见需要多个字节码操作,有可能在线程执行过程中切到其他线程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/944020.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入解析文件系统原理(inode,软硬链接区别)

第四阶段提升 时 间:2023年8月29日 参加人:全班人员 内 容: 深入解析文件系统原理 目录 一、Inode and Block概述 (一)查看文件的inode信息:stat (二)Atime、Mtime、Ctime详…

高精度 低纹波|12A大电流电源解决方案,网通、视频显示、国产PC行业多领域适用

随着科技的快速发展,各行业产品都在不断迭代和加速升级,TV产品也不例外。TV产品的演变一直朝着大尺寸、高分辨率的方向发展,从2K到4K再升级至8K,每一次的升级都为消费者带来更好的视觉体验。 从技术层面来看,“8K大尺寸…

RocketMQ消息查询

区别于消息消费:先尝后买 尝就是消息查询 买:消息的消费 RocketMQ支持按照下面两种维度("按照Message ld查询消息"、"按照Message Key查询消息")进行消息查询。 1按照Messageld查询消息 Msgld总共16字节,包含消息存储…

[Mac软件]Adobe After Effects 2023 v23.5 中文苹果电脑版(支持M1)

After Effects是动画图形和视觉效果的行业标准。由运动设计师、平面设计师和视频编辑用于创建复杂的动画图形和视觉上吸引人的视频。 创建动画图形 使用预设样式为文本和图形添加动画效果,或逐帧调整它们。编辑、添加深度、制作动画或转换为可编辑的路径&#xff…

冠达管理:美股涨了!“越南特斯拉”市值直追丰田!这一论坛将召开

当地时间8月28日,美股三大股指团体收涨,到收盘,道指报34559.98点,涨0.62%;标普500指数报4433.31点,涨0.63%;纳指报13705.13点,涨0.84%。 高盛上星期五发布的数据显现,在英…

聚焦数据安全,“2023数据安全平台神兽企业”调研正式启动

当下,数字经济正蓬勃发展,数据已成为关键驱动力,而数据安全是保障数据要素价值的前提。数据安全建设也正在从孤立的数据安全产品过渡到数据安全平台,以更大程度促进数据的业务利用率和价值。 为了更好洞察和反映当前数据安全平台…

开发工具——IDE安装 / IDEA子module依赖导入失败编译提示xx找不到符号 / IDEA在Git提交时卡顿

近期换了工作电脑,公司的IT团队不够给力,不能复制电脑系统,所以又到了需要重装IDE配置开发环境的时候了;在安装和导入Java编译器IDEA的时候遇到一些"棘手"问题,这里整理下解决方法以备不时之需; …

bootloader串口更新程序[瑕疵学习板]

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、储备知识二、程序步骤2.程序展示1.bootloader2.然后是主运行函数总结前言 很久没有更新文章了。最近工作太忙,没有学习很多的知识,然后这两天不忙了,就学习了一下bootloader的程序升级…

hive lateral view 实践记录(Array和Map数据类型)

目录 一、Array 1.建表并插入数据 2.lateral view explode 二、Map 1、建表并插入数据 2、lateral view explode() 3、查询数据 一、Array 1.建表并插入数据 正确插入数据: create table tmp.test_lateral_view_movie_230829(movie string,category array&…

基于水基湍流算法优化的BP神经网络(预测应用) - 附代码

基于水基湍流算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于水基湍流算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.水基湍流优化BP神经网络2.1 BP神经网络参数设置2.2 水基湍流算法应用 4.测试结果:5…

搭建自己的ChatGPT智能问答,HelpLook ChatBot 正式上线!

基于已有内容的站点或现成文档 零代码快速导入 即可生成自己专属的ChatGPT智能问答机器人 HelpLook ChatBot,正式发布上线! 只需连接您的数据源,HelpLook 就能为您的数据创建一个类似 ChatGPT 的聊天机器人。您可以将它作为小工具以 JS 的…

【计算机网络】TCP 的三次握手和四次挥手

TCP 是面向连接的,面向连接就是数据通讯的时候需要进行三次握手,断开通讯的时候需要进行四次挥手。 1.seq(sequence number),序列号,随机生成的 2.ack(acknowledgement number),确认号,ackseq1 3.ACK(ackno…

Could not autowire. No beans of ‘DiscoveryClient‘ type found.

一、导错了包 DiscoveryClient对应有两个包: org.springframework.cloud.client.discovery.DiscoveryClient; com.netflix.discovery.DiscoveryClient; 目前导入的包是: 改成第一个包,发现不再报红了。

数据安全治理方案

数据安全能力建设工作并非从零开始,大部分组织在此前或多或少已有一些安全体系,基本上是围绕 信息系统和网络环境开展安全保护工作,主要聚焦在信息安全和网络安全;而数据安全是以数据为核心, 围绕数据安全生命周期进行…

【Java】知识点回顾

🎄欢迎来到边境矢梦的csdn博文🎄 🎄本文主要梳理后端技术的Java的知识点以及回顾Java基础🎄 🌈我是边境矢梦,一个正在为秋招和算法竞赛做准备的学生🌈 🎆喜欢的朋友可以关注一下&…

SpringBootWeb 登录认证[Cookie + Session + Token + Filter + Interceptor]

目录 1. 登录功能 1.1 需求 1.2 接口文档 1.3 登录 - 思路分析 1.4 功能开发 1.5 测试 2. 登录校验 2.1 问题分析 什么是登录校验? 我们要完成以上登录校验的操作,会涉及到Web开发中的两个技术: 2.2 会话技术 2.2.1 会话技术介绍…

移动云发布长三角信创云电脑资源池

8月27日,2023长三角算力发展大会在苏州举行。中国移动云能力中心与江苏移动苏州分公司同期联合举办“移动云算力网络分论坛”,与各界领导、行业专家、领军企业家等分享了移动云算力调度能力新型应用、移动云“五岳”量子计算云平台的最新进展&#xff0c…

2023年Twitter营销应该知道的一些数据

2023 年的 Twitter月活跃用户数量达到了 3.539 亿。根据专家的最新估计数据(eMarketer,2022 年),这一数字在前一年回升了 3.9%,在全球社交媒体用户总数中占比为 9.4 %。 明显可以看出,马斯克的收购对 Twit…

冠达管理:核污染防治板块热度不减,建工修复等多只个股涨停

日本福岛核污染水排海引发商场担忧,核污染防治概念股表现持续活跃。 8月28日,建工修复(300958.SZ)、中电环保(300172.SZ)、捷强配备(300875.SZ)20CM强势涨停,中广核技&a…

实现人物关系图还在用Echarts吗?快试试relation-graph

关于relation-graph 支持Vue和React的 关联关系图谱组件,可以展示如组织机构图谱、股权架构图谱、集团关系图谱等知识图谱,可提供多种图谱布局,包括树状布局、中心布局、力学布局自动布局等。官网 安装使用 一,通过nodejs开发v…