如何在python3.13中禁用GIL?

问题描述 投票:0回答:1

我很高兴能够尝试使用带有新 GIL 可选功能的 python3.13。我想探讨禁用 GIL 对 python 中实现真正的多线程的影响。 我想要一个真实世界的示例来比较启用和禁用 GIL 的多线程的 python3.13 性能。

在同一个环境中,我可以运行两个python,一个带GIL,另一个不带GIL吗?

参考:PEP703

python python-3.x gil
1个回答
0
投票

根据What's new in Python 3.13,您需要一个新的Python二进制文件来测试它。

自由线程模式需要不同的可执行文件,通常称为 python3.13t 或 python3.13t.exe。

使用

pyenv
最新版本安装Python,这应该会给你一个虚拟环境来测试它(在大多数unix系统中):

pyenv install 3.13t-dev
$HOME/.pyenv/versions/3.13t-dev/bin/python3.13t -m venv .venv
source .venv/bin/activate

您可以使用

sys._is_gil_enabled()

进行检查
python -c 'import sys; print(sys._is_gil_enabled())'
# you should get 'False'

玩得开心!

© www.soinside.com 2019 - 2024. All rights reserved.