当前位置:   article > 正文

Python中的GIL_python gil

python gil

1.GIL是什么

又称全局解释器锁,本质是互斥锁

每个线程在执行的过程都需要先获取GIL锁,保证同一时刻只有一个线程可以执行代码。

由于GIL的存在,在Python上开启多个线程时,每个单独线程都会在竞争到GIL后才运行,因此在我们的Python语言中多线程其实是假的多线程,它只会在一个CPU上运行。

即使在具有多核CPU中,Python的多线程也是串行执行的,并不会同一时间多个线程分布在多个CPU上运行。

2.作用

作用:限制多线程同时执行,阻止同一个进程下多个线程的同时执行

3.为什么要有GIL锁

python是动态强类型语言 ,因为有垃圾回收机制,如果同一个进程下有多个线程同时在执行,垃圾回收是线程(同一个进程下的变量是共享的),该线程做垃圾回收时,如果其他线程在运行就可能会产生并发安全问题(数据安全的问题),由于当时只有单核CPU(即便开始多线程,同一时刻也只有一个线程在运行),作者强行加了GIL锁,为了保证在一个进程内,同一时刻只有一个线程,目的就是为了防止垃圾回收机制回收垃圾时出现数据紊乱 的问题,所以加了它。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/687157
推荐阅读
相关标签
  

闽ICP备14008679号