GIL存在的原因 python内核基于C编写, 大部分C语言库都不是原生线程安全的 特性 多线程进行cpu密集型计算,会存在频繁的上下文切换,使得效率低下多线程只对I/O密集型计算产生正面效果,而至少有一个cpu密集型线程存在,那么多线程效率就会因GIL而大幅下降 py3对GIL的改进 强制线程在固定时间后释放cpu密集型会优先获取在其他线程有机会运行之前,不允许当前线程重新获取(动态调整自身的优先级,py2.x没有此机制)