PyCon 2016: 如何优雅地黑 GIL

2016-06-06 09:54:08 +08:00
 est

python 如此强大,可以调用你的计算机的几乎所有资源:

视频: https://www.youtube.com/watch?v=P3AyI_u66Bw

3228 次点击
所在节点    Python
9 条回复
fy
2016-06-06 10:02:33 +08:00
蛤蛤蛤 这个视频我也看了,台上在讲:
现在我们的电脑变得牛逼了, Python 可以使用这些资源 ... 然后一个一个点出来

除了…… 8 cores

台下传来笑声
FrankFang128
2016-06-06 10:03:20 +08:00
请教为什么不能 8 cores
tutuge
2016-06-06 10:07:39 +08:00
@FrankFang128 全局解释器锁导致的
fy
2016-06-06 10:14:47 +08:00
@FrankFang128 因为 GIL 会以指令为单位加锁,所以计算密集型程序用不了 8 个核心的运算力。不过这不意味着 Python 中多线程没用,等 IO 还是可以利用多线程的。
clino
2016-06-06 10:18:00 +08:00
所以我之前有个设计是把需要多核完成的部分专门弄到一个多进程的服务里然后用 rpc 接口方式提供出来给别的 python 模块使用
shimmerh
2016-06-06 10:20:05 +08:00
这个问题,其实是设计者为了方便开发者所考虑的。可惜大家不知足啊。。
tutuge
2016-06-06 10:25:37 +08:00
@clino 为啥不直接用 python 的多进程…
clino
2016-06-06 10:34:53 +08:00
@tutuge 因为使用的模块是 web 服务,部署方式是用 gevent 方式跑的,只有单进程单线程在跑
ipconfiger
2016-06-06 10:36:21 +08:00
import multiprocessing

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/283766

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX