当前位置:   article > 正文

Python 伪多线程_python伪多线程

python伪多线程

Python的“伪多线程”--- GIL

Python 伪多线程

Python热度很高,能干的事也很多。虽然CPython底层实现用的C,但它的速度还是快不起来!即使你用了多进程或多线程!!!究其原因之一,Python的多线程是“伪多线程“!

GIL

GIL 全局解释器锁(GIL)通常被视为Python在高端多处理器服务器机器上部署的障碍,因为多线程Python程序实际上只使用一个CPU,因为(几乎)所有Python代码都只能在持有GIL的情况下运行。

早在Python1.5时代,Greg Stein实际上实现了一个全面的补丁集(“免费线程”补丁),它删除了GIL,并用细粒度的锁定取代了它。亚当·奥尔森最近在他的python安全线程项目中做了一个类似的实验。不幸的是,这两个实验都显示了单线程性能的急剧下降(至少慢30%),这是由于需要大量细粒度的锁定来补偿GIL的删除。

所以,GIL使Python多线程成了”伪线程“,但还是必须得有。

这并不意味着您不能在多CPU机器上很好地使用Python!你只需要创造性地将工作分配给多个进程,而不是多个线程。新并发数据库中的ProcessPoolExecutor类。期货模块提供了一种简

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

闽ICP备14008679号