Python 的 GIL 是什么?对多线程有什么影响
GIL(Global Interpreter Lock,全局解释器锁):CPython 解释器保证同一时刻只有一个线程执行 Python 字节码的互斥锁。影响:① 多线程无法利用多核并行执行 CPU 密集型任务(串行);② IO 密集型任务(网络、文件)多线程仍有效(阻塞时释放 GIL);③ 影响范围是 CPython 官方实现,PyPy 等无 GIL 或 Jython 无。绕过方案:多进程、C 扩展(如 numpy 释放 GIL)、asyncio 协程。Python 3.13+ 推出可选的 free-threaded(无 GIL)构建。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。