峰哥IT_python 3.9.9 x64 去除GIL(全局解释器锁)版——多线程

链接: https://pan.baidu.com/s/14LNqdWbrfqG0LKJvqB8VbQ 提取码: qfbv 复制这段内容后打开百度网盘手机App,操作更方便哦
–来自百度网盘超级会员v6的分享
0x00 前言
最近玩python时想实现多进程多线程混合运行,了解到了GIL(全局解释器锁)的存在,关于GIL,可以参见下面的官方文档
https://docs.python.org/zh-cn/3/glossary.html?highlight=gil#term-global-interpreter-lock
也就是说,python的多线程并不能实现真正意义上的并行,虽然多进程没有GIL的问题,但是创建进程的开销、内存占用以及通信效率都是多进程的问题(更何况多线程多进程我全都想要),所以我开始尝试修改Cpython的源码以去除GIL,但未果。
后来某次在GitHub上发现了一个去除GIL的项目,并且被认为“有希望在未来几年里真正进入 CPython”(项目地址:https://github.com/colesbury/nogil),本版python即基于此源码编译
0x01 过程
下载源码之后,查阅相关资料发现python源码可在Linux/Unix上直接编译运行(Linux/Unix的朋友可以直接去那个项目上git clone然后make就行了),但Windows上的编译却十分麻烦(主要是坑太多了),我便萌发了将其制作为安装包形式的想法。
查阅官方文档得知编译python源码需要VS2017环境,安装之后进入PCBuild文件夹,先下载依赖项,之后运行build.bat
第一次编译就报错了,后来经过多方排查后发现是该项目的作者使用了仅能运行于64位系统上的API函数,32位的编译就只能放弃了,执行命令:.build.bat -p x64
编译完成,运行根目录下的python.bat即可打开python命令行
运行项目作者所修改版本中特有的命令:import sys; print(sys.flags.nogil),无报错,编译成功

圈主 管理员

热门评论
:
该帖子评论已关闭
图片审查中...
编辑答案: 我的回答: 最多上传一张图片和一个附件
x
x