一、理解
GIL全局解释器锁并不是Python语言的特性,它是在现实Python解释器时引用的一个概念。
GIL只在CPython解释器上存在。
GIL作用:保证同一时间内只有一个线程在执行。
二、GIL影响:
1.Python中同一时刻有且只有一个线程会执行;
2.Python中的多个线程由于GIL锁的存在无法利用多核CPU;
3.Python中的多线程不适合计算机密集型的程序;
4.如果程序需要大量的计算,利用多核CPU资源,可以使用多进程来解决。
三、GIL解决:
1.更换更高版本的解释器,比如3.6,从3.2版本开始,据说Python对解释做了优化
2.更换解释器,比如JPython,但是由于比较小众,支持的模块较少,导致开发的效率降低
3.Python为了解决程序使用多核的问题,使用多进程代替多线程