Python 中的GIL

GIL:Global Interpreter Lock,     全局解释器锁定,是指python虚拟机在执行多线程程序时,任一时刻只有一个线程在执行,这使得多线程程序无法充分利用CPU。对于一般的多线程跟IO绑定的程序,GIL影响并不明显,因为多线程跟IO绑定大多时间在等待,CPU并不是瓶颈,只有计算量大的应用才是瓶颈,GIL会限制性能的发挥。
为什么会存在GIL,因为python为了模拟多线程,在虚拟机底层执行字节码时避免产生竞争,多线程粒度整体加锁。
如果一个程序是CPU密集型的,可以通过多进程并发来提高效率。
如果一个程序是IO密集型的,可以通过协程或者基于IO事件的异步框架来提升效率。

版权声明:本文为m0_55782613原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。