GIL 是什么

GIL 是 CPython 中的一个 mutex,确保多个线程并发运行 bytecodes。之所以有 GIL,是因为 CPython 的内存管理不是线程安全的。1

GIL 什么时候会使运行变慢

每次访问 python object 都要获取 GIL,当然会慢。另外根据 这个 slide但其实我还不了解为什么 CPython 不是线程安全

GIL 什么时候不会影响性能

I/O, 图像处理等在 GIL 外的东西当然不会被 GIL影响,但是问题是:为什么 IO 不会影响

  1. https://wiki.python.org/moin/GlobalInterpreterLock