Python 中的GIL

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