Python GIL 真的是针对每个解释器的吗?

2024-01-15

我经常看到人们谈论 GIL 是每个 Python 解释器的(甚至在 stackoverflow 上也是如此)。

但我在源代码中看到,GIL 似乎是一个全局变量,因此每个 python 进程中的所有解释器都有一个 GIL。我知道他们这样做是因为没有像 lua 或 TCL 那样传递解释器对象,只是一开始设计得不好。而且线程本地存储对于 python 人员来说似乎不可移植。

它是否正确?我简单浏览了一下我在项目中使用的 2.4 版本。

在以后的版本中,尤其是 3.0 中,这是否发生了变化?


GIL 确实是针对每个进程的,而不是针对每个解释器的。这在 3.x 中没有改变。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python GIL 真的是针对每个解释器的吗? 的相关文章

随机推荐

  • 7z 命令行压缩文件夹

    我正在尝试使用 7zG exe 的命令行来压缩 7z 文件夹 我的代码适用于文件 但不适用于文件夹 有人可以告诉我使用 7z 命令行压缩文件夹的正确方法吗 以下是仅适用于文件的示例代码 每当我尝试运行此代码时 7zip 都会显示一个消息框
  • 如何在matlab中编写指标函数

    我是 matlab 的新用户 我想解决以下问题 我想构造一个分段常数函数f f应该是一个匿名函数 例如f t 1 0 0 25 t 然而 分段常数函数的区间数一般不固定 相反 分段间隔取决于用户输入 例如 如果输入4 则分段间隔变为 0 0
  • WooCommerce 在订单状态完成时触发功能

    我试图在订单完成时触发一个功能 我正在使用这段代码 add action woocommerce order status completed array this payment complete 1 然后这个函数 public func
  • 异步等待进度报告不起作用

    我有一个 C WPF 程序 它打开一个文件 逐行读取它 操作每一行 然后将该行写入另一个文件 那部分工作得很好 我想添加一些进度报告 因此我将方法设为异步 并将 wait 与进度报告结合使用 进度报告非常简单 只需更新屏幕上的标签即可 这是
  • 从 RSA .pem 文件获取私钥 [重复]

    这个问题在这里已经有答案了 鉴于这种 pem文件 使用 openssl 生成并使用密码加密 BEGIN RSA PRIVATE KEY Proc Type 4 ENCRYPTED DEK Info DES EDE3 CBC AC009672
  • 在注释视图上使用 canShowCallout 时出现 MKMapKit 异常

    我正在尝试使用非常简单的自定义地图注释视图和标注 创建注释视图时 只需将 UIImageView 作为子视图添加到其自身 效果很好 但是 当我在注释视图上调用 canShowCallout 时 返回视图后立即在 MapKit 中引发异常 堆
  • 在数据库中记录 ActionMailer 发送的电子邮件的最佳方式?

    我需要记录通过 ActionMailer 发送的电子邮件 而简单的文本文件是不够的 我需要将日志存储在 ActiveRecord 模型中 电子邮件发送性能可能会受到影响 但在这种情况下 这是最好的选择 因为应用程序随后会定期访问日志 我还需
  • 合并android清单文件,过滤器冲突

    我正在尝试合并 Unity 中 2 个插件的 Android 清单文件 但是有两个活动具有相同的意图过滤器 我只能让其中一个同时工作 在这 2 个冲突的活动中 清单文件中位于顶部的活动有效 因此 如果清单 1 中的活动位于顶部 则插件 1
  • 为什么 bash 没有捕获来自 Java 的 process.destroy() 的信号[重复]

    这个问题在这里已经有答案了 用于测试的脚本 The script below just hangs until you press Ctrl C then it takes two seconds to shut down I wrote
  • std::function 的类型推导

    以下代码不会编译 因为在编译时未调用匹配的 std function 构造函数 template
  • Windows - 直接运行 .py 与运行 python blah.py 的行为不同

    我有一个使用子进程的 python 脚本 import subprocess print Running stuff subprocess check call do stuff bat print Stuff run 如果它被命名为 bl
  • 如何使用 FB.ui Javascript sdk 在 Facebook 上上传视频

    我正在使用 FB ui 方法将图像发布到 facebook 如下所述 FB ui display popup method feed name image link link picture image path caption capti
  • Spark集群中RDD映射函数内部调用函数

    我正在测试我在代码中定义的一个简单的字符串解析器函数 但其 中一个工作节点在执行时总是失败 这是我一直在测试的虚拟代码 JUST A SIMPLE PARSER TO CLEAN PARENTHESIS def parseString fi
  • Android BATTERY_PROPERTY_ENERGY_COUNTER 返回固定值?

    我的应用程序每 5 秒在工作线程中运行以下代码 但它返回固定值 9223372036854775808 我错过了什么吗 BatteryManager batteryManager BatteryManager context getSyst
  • Symfony2 明文用户不起作用

    我尝试通过将其配置到 secure yml 中来配置一个简单的安全管理区域 我使用了 Symfony 的例子 security firewalls secured area pattern anonymous http basic real
  • 当数据可用时,组合框自动选择第一项

    我正在寻找在数据可用时选择第一项的方法 但如果源中没有数据 则不要选择 怎么做 我对 WPF 很陌生
  • 使用 @babel/preset-typescript 从环境 TypeScript 模块中使用枚举?

    是否可以食用enum来自正在编译的文件babel using babel preset typescript mymodule d ts declare module mymodule export enum Fruit apple App
  • 表达式中括号组的 ISO C 等效项

    如何以符合 ISO C99 的方式执行以下操作 define MALLOC type length message type a LINE type malloc length sizeof type assert message a LI
  • C#7 值元组/解构不对称

    在这里摆弄 https dotnetfiddle net 9Ex5Jp 给定一个函数 string a string b F 您可以解构它返回的元组 var a b F string c string d F 或者你可以直接分配它 var
  • Python GIL 真的是针对每个解释器的吗?

    我经常看到人们谈论 GIL 是每个 Python 解释器的 甚至在 stackoverflow 上也是如此 但我在源代码中看到 GIL 似乎是一个全局变量 因此每个 python 进程中的所有解释器都有一个 GIL 我知道他们这样做是因为没