python GIL
GIL 是什么
GIL 是 CPython 中的一个 mutex,确保多个线程并发运行 bytecodes。之所以有 GIL,是因为 CPython 的内存管理不是线程安全的。1
GIL 什么时候会使运行变慢
每次访问 python object 都要获取 GIL,当然会慢。另外根据 这个 slide。但其实我还不了解为什么 CPython 不是线程安全。
GIL 什么时候不会影响性能
I/O, 图像处理等在 GIL 外的东西当然不会被 GIL影响,但是问题是:为什么 IO 不会影响?
-
https://wiki.python.org/moin/GlobalInterpreterLock ↩