GIL 全局解释器锁
44.11 GIL 全局解释器锁
CPython 的 GIL 使同一时刻只有一个线程执行 Python 字节码。
多线程无法利用多核做纯 Python 计算;I/O 阻塞时会释放 GIL,故 I/O 密集仍有效。
大量数值计算用 multiprocessing 或 NumPy(底层 C 释放 GIL)。
💡 下载 10 个文件用多线程快;算 10 个大斐波那契用多进程。
CPython 的 GIL 使同一时刻只有一个线程执行 Python 字节码。
多线程无法利用多核做纯 Python 计算;I/O 阻塞时会释放 GIL,故 I/O 密集仍有效。
大量数值计算用 multiprocessing 或 NumPy(底层 C 释放 GIL)。