下载地址:https://www.python.org/downloads/release/python-3130rc3/ 。下载Python 3.13.0rc3 的Windows installer (64-bit)安装程序。
运行安装程序,选择“自定义安装”:
在"Advanced Options"下,确保选择“Download free-threaded binaries(experimental)”选项,然后点击“安装”。
安装完成后,在安装目录下回有一个python3.13t.exe 的程序,这个就是无GIL 自由线程版本的入口。
只有使用 python3.13t.exe 运行py才能无GIl,使用python.exe依然是有GIl版本。
import threading
def f():
while 1:
pass
for i in range(16):
threading.Thread(target=f).start()
代码说明:
f函数是超高速无限懵逼死循环极端消耗cpu。 运行此代码,可以看到16核的机器,所有核心全部100%
这放在以前有gil的python解释器,只有使用 multiprocessing开16进程
multiprocessing.Process(target=f).start()
才能使所有核心的cpu都 100%。
通过linux top命令或者win的进程管理器,与有gil版本的区别非常明显。
弊端说明:
但是这个无gil解释器肯定有弊端,不然早就内置成了标准版本,还需要多此一举用选装 带t的解释器吗?
虽然python3.13t.exe 性能很犀利,但为了保险起见,要先做好测试。
对我来说,吸引力没那么大, python funboost 框架开启多进程很容易,还不破坏代码,还不需要升级python版本。
对于以前要用多核就要开多进程,多进程之间还要用内存通信开发不方便的的人来说,无gil很香。
但是有些情况下,funboost框架就好了。