【python3.14 无GIL锁版本多线程初体验】
Python 3.14无GIL版本初体验:测试显示多线程在CPU密集型任务中性能显著提升。通过安装无GIL版Python并进行多线程测试(1-32线程),8线程后性能提升非线性但效果明显,相比传统多进程方案更节省内存。测试使用i9 10980XE处理器,32线程时运算时间从单线程7.41秒降至0.61秒,证实无GIL版本在多线程场景下的优势。
·
python3.14 无GIL锁版本多线程初体验
1、下载python3.14
2、安装
安装的时候注意勾选
3、测试
import time
import threading
import queue
def cpu_bound_task ( n, thread_id ,q):
count = 0
for i in range (n):
count += i*i
q.put(count)
N = 100000000
def run_with_threads (num):
threads = []
start = time.time()
q=queue.Queue()
# 创建并启动多个线程
for i in range ( num ):
t = threading.Thread(target=cpu_bound_task, args=(N//num, i,q))
threads.append(t)
t.start()
# 等待所有线程完成
for t in threads :
t.join()
end = time.time()
result=[]
while not q.empty():
result.append(q.get())
#print(result)
print ( f'Total time taken: {end - start: .2f} seconds' )
if __name__ == '__main__' :
for th in [1, 2, 4, 8, 16, 32]:
run_with_threads(th)
CPU为I9 10980XE 18个内核,逻辑处理器36个,分别在1, 2, 4, 8, 16, 32线程时,时间分别如下:
Total time taken: 7.41 seconds
Total time taken: 3.80 seconds
Total time taken: 2.16 seconds
Total time taken: 1.14 seconds
Total time taken: 0.76 seconds
Total time taken: 0.61 seconds
可以看见,其对于性能的提升到了8线程以后并非网上说的线性提升,具体原因不清楚。
以往在CPU密集型运算时,需要多进程来处理,耗费内存大,改正无GIL锁版的多线程后,大幅提升了CPU利用率,内存占用大幅下降,还是非常有意义的。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)