说点看书的体会,欢迎讨论~
Python 白皮儿书——《 Python 核心编程第二版》,里讲:
“
对 Python 虚拟机的访问由全局解释器锁( Global Interpreter Lock , GIL )来控制,正式这个锁,能保证同一时刻只有一个线程运行。
"
看完 18.3.1 ,感觉, Python 代码不能实现多个 CPU 共同快跑,只能一次运行一个线程,虽然开了多个线程,但 GIL 强制一次只执行一个(做爬虫的同事说, Python 爬虫只能让一个 CPU 吃饱,和其他 CPU 无关)
换言之, Python 是把多线程的执行模型,强行退化到 1 个 CPU ,退化到流水线处理模式。
但是, 18.3.1 最后一段,的意思,我的理解是:
这种 Python “多线程”,会让 I/O 操作在阻塞时间内,通过 GIL 切换到其他线程。
所以,对某些界面操作,硬件调用,是有用的。
但纯用 Python 代码,想完成计算方向的并行,是没有卵用的。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/296239
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.