news 2026/4/30 19:23:44

python3.14版本的free-threading功能体验

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python3.14版本的free-threading功能体验

今天安装该版本进行了体验,并做了简单测试,这里整理成笔记记录下来,希望对你有帮助。

python 3.14.0发布页:

https://www.python.org/downloads/release/python-3140/

image

一、功能说明

从3.13版本开始,python引入了free-threading功能,其中GIL可被关闭,python线程可充分利用多核cpu资源,这里做下简单介绍。

1)通过源码安装时,需要添加 --disable-gil 标志;

2)可通过如下方式查看是否支持free-threading功能:

python -VV

sys.version

sys._is_gil_enabled()

3)线程安全方面

free-threading版本的python旨在提供与启用GIL功能python版本类似的线程安全行为,通过内部锁来实现dict、list 和 set这些内置数据类型的线程安全。

说明:官方文档建议尽量使用 threading.Lock 或其他同步原语,而不是依赖内置类型的内部锁。

更多信息请参考官方文档,可参考官方文档:

https://docs.python.org/3/howto/free-threading-python.html

image

二、环境准备

这里使用源码编译的方式安装python3.14.0版本,如果嫌麻烦,可直接下载预编译的二进制文件。

源码下载地址:

https://www.python.org/ftp/python/3.14.0/Python-3.14.0.tgz

预编译二级制下载地址可从页面获取:

https://www.python.org/downloads/release/python-3140/

image

编译时需要添加关闭gil选项:

--disable-gil

安装依赖:

apt install gcc bzip2 libssl-dev libssl3 openssl xzip lzma sqlite3 libgdbm-dev tk libffi-dev

编译及安装:

./configure --enable-optimozations --enable-shared --disable-gil --prefix=/usr/local/python314

make

make altinstall

编辑环境脚本(env.sh):

#! /bin/bash

export CFLAGS="-I/usr/local/python314/include"

export LDFLAGS="-L/usr/local/python314/lib"

export LD_LIBRARY_PATH=/usr/local/python314/lib

环境生效:

source env.sh

可以通过-VV参数查看是否支持free-threading功能:

image

也可通过以下方式查看是否支持free-threding功能:

sys._is_gil_enabled()

sys.version

image

三、测试验证

这里使用简单的多线程代码进行验证。

测试代码如下(thrdTest1.py):

复制代码

import threading

import time,random

def fun(interval):

counter = 0

while True:

a=random.randint(10000,99999) * random.randint(10000,99999)

for i in range(3):

t = threading.Thread(target=fun,args=(1,))

t.daemon = True

t.start()

time.sleep(100)

复制代码

启动脚本如下(start.sh):

#! /bin/bash

export CFLAGS="-I/usr/local/python314/include"

export LDFLAGS="-L/usr/local/python314/lib"

export LD_LIBRARY_PATH=/usr/local/python314/lib

/usr/local/python314/bin/python3.14 thrdTest1.py

运行效果如下:

image

由图可以看出:

3个线程跑满3个cpu,free-threading功能可充分发挥多核cpu优势。

四、资源获取

本文相关资源及运行环境,可从如下渠道获取:

关注微信公众号(聊聊博文,文末可扫码)后回复 20251014 获取。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 15:46:03

Zotero-reference插件完全指南:让参考文献管理变得简单高效

还在为学术写作中的繁琐引用格式而头疼吗?Zotero-reference插件作为Zotero的得力助手,能够彻底改变你的文献管理方式。这款专为学术研究人员设计的插件,让参考文献的格式化和引用变得前所未有的简单。 【免费下载链接】zotero-reference PDF …

作者头像 李华
网站建设 2026/4/29 10:17:03

有毒有害气体及粉尘监测控制系统

有毒有害气体及粉尘监测控制系统是现代工业安全生产、环境保护和职业健康中不可或缺的核心技术装备,用于实时、连续地监测特定环境中的颗粒物(粉尘)和各种有毒、有害、可燃气体的浓度,并在浓度超标时发出警报,从而保障…

作者头像 李华
网站建设 2026/4/16 18:40:34

ZooKeeper选举机制详解

Zookeeper选举机制——第一次启动SID:服务器ID。用来唯一标识一台ZooKeeper集群中的机器,每台机器不能重复,和myid一致。 ZXID:事务ID。ZXID是一个事务ID,用来标识一次服务器状态的变更。在某一时刻,集群中…

作者头像 李华
网站建设 2026/4/27 12:20:26

图片GPS数据编辑器 - 在线编辑图片GPS地理信息位置信息

软件介绍 图片GPS数据编辑器是一款功能强大的在线工具,专为编辑图片GPS位置信息而设计。该工具支持添加、修改和删除图片的GPS数据,所有操作均在本地完成,无需上传图片到服务器,最大程度保护用户隐私。 功能特点 🎯…

作者头像 李华
网站建设 2026/4/19 2:02:41

光特通信:硬核技术背后的隐形冠军

在万物互联的时代,光纤通信如同信息高速公路的"基石",而光模块则是这条公路上精准指挥的"智能信号灯"。作为国内少数具备从自主研发到销售全产业链能力的企业,深圳市光特通信技术有限公司正以自主创新的技术实力&#xf…

作者头像 李华
网站建设 2026/4/19 14:55:57

MATLAB图像导出完整指南:从基础到专业的完美解决方案

MATLAB图像导出完整指南:从基础到专业的完美解决方案 【免费下载链接】export_fig A MATLAB toolbox for exporting publication quality figures 项目地址: https://gitcode.com/gh_mirrors/ex/export_fig 还在为MATLAB导出的图像质量不佳而烦恼吗&#xff…

作者头像 李华