python中GIL的原理及用法总结
在CPU限制类型和多线程代码中,GIL是一个性能瓶颈。GIL使Python多线程成为伪并行多线程。仅CPython解释器上存在GIL。对python虚拟机访问的控制由全局解释锁GIL控制,正是这个锁来控制同一时刻只有一个线程能够运行。在python中使用都是操作系统级别的线程,linux中使用的pthread,window使用的是其原生线程。那么这样看起来py不给力啊,GIL直接导致CPython不能利用物理多核的性能加速运行。锁住全局解释器使得其比较容易的实现对多线程的支持,但也折损了多处理器主机的并行计算能力。但是不论标准的,还是第三方的扩展模块,都被设计成在进行密集计算任务时释放GIL。另外还有在做IO操作时,GIL总是被释放。
用户评论