当前位置: 首页 > news >正文

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 获取。

http://www.rkmt.cn/news/86943.html

相关文章:

  • 传统vsAI:开发魔兽插件效率提升300%的秘密
  • 5分钟构建Java安全沙箱原型
  • Python MD5在实际项目中的5个典型应用场景
  • 5个关键步骤:轻松掌握Docker容器化部署的版本管理艺术
  • Apache Airflow数据治理自动化工具链终极指南
  • 3分钟完成OpenSSL安装:极速方案对比
  • 2025年评价高的伺服减速器/行星减速器厂家实力及用户口碑排行榜 - 行业平台推荐
  • 甲基化分析利器MethylDackel:3步掌握BS-seq数据处理核心技能
  • PictureSelector终极指南:Android图片选择库的完整使用教程
  • 包装设计创意大比拼,谁才是行业王者?
  • Python语言编程导论第三章 编写程序
  • 有序数组的平方——双指针
  • ssm 框架的校园二手交易市场系统
  • 如何通过5大核心升级打造专业级虚拟显示方案?
  • 电视盒子刷机终极方案:高安版设备完整避坑指南
  • 从按键到艺术:GSE宏编译器的用户体验进化之旅
  • Scrypted:打造智能家居视频监控的终极解决方案
  • 【2025 最新版】Audacity 下载安装教程(超详细图文步骤 + 新手快速上手指南) - PC修复电脑医生
  • 微信小程序图片裁剪实战:从入门到精通掌握we-cropper配置技巧
  • 小爱音箱音乐播放优化指南:三步完美解锁功能
  • 300B参数效率革命:ERNIE 4.5如何用异构MoE架构重塑企业AI格局
  • 人类知识已经喂不饱 GPT-5.2 了!下一代 AGI 靠“AI 凭空想象”出来的数据训练?一场模型自我进化的革命!
  • Tabula表格提取工具:三步快速掌握PDF数据自动化处理
  • 2025年度二乙烯三胺生产厂家综合实力排行榜,看哪家质量稳定 - myqiye
  • 2025年无水哌嗪厂家推荐:无水哌嗪专业制造商排名解析 - 工业品牌热点
  • 上海电路板开发哪家专业?实邦电子值得考虑吗?
  • 揭秘Windows函数拦截神器:MinHook轻量级钩子库完全指南
  • 逆向工程工具包完全配置手册:从零搭建专业分析环境
  • 毕设 深度学习yolo11森林火灾预警烟雾检测系统(源码+论文)
  • 61亿参数撬动400亿性能:Ring-flash-2.0改写大模型性价比规则