赞
踩
Python热度很高,能干的事也很多。虽然CPython底层实现用的C,但它的速度还是快不起来!即使你用了多进程或多线程!!!究其原因之一,Python的多线程是“伪多线程“!
GIL 全局解释器锁(GIL)通常被视为Python在高端多处理器服务器机器上部署的障碍,因为多线程Python程序实际上只使用一个CPU,因为(几乎)所有Python代码都只能在持有GIL的情况下运行。
早在Python1.5时代,Greg Stein实际上实现了一个全面的补丁集(“免费线程”补丁),它删除了GIL,并用细粒度的锁定取代了它。亚当·奥尔森最近在他的python安全线程项目中做了一个类似的实验。不幸的是,这两个实验都显示了单线程性能的急剧下降(至少慢30%),这是由于需要大量细粒度的锁定来补偿GIL的删除。
所以,GIL使Python多线程成了”伪线程“,但还是必须得有。
这并不意味着您不能在多CPU机器上很好地使用Python!你只需要创造性地将工作分配给多个进程,而不是多个线程。新并发数据库中的ProcessPoolExecutor类。期货模块提供了一种简
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。