LewisQu
发布于 2026-02-19 / 18 阅读
0
0

python多线程:GIL 全局解释器锁

GIL: global interpreter lock

确保在同一时刻只有一个线程能够执行Python字节码:当Python解释器运行Python代码时,它会获取GIL,然后执行相应的字节码指令。其他线程想要执行Python字节码时,必须先获取GIL,但只有在当前线程释放GIL后才能获得。

为什么有GIL:解释器的C语言实现部分在完全并行执行时并不是线程安全的,所以需要GIL用于保护。

如何选择多进程/多线程?每个进程有一个GIL,所以对于IO密集的任务,一个进程中使用多线程影响不大,对于cpu密集型任务,则需要使用多进程。


评论