同时抓取 10 个网站的网页,是用 multithread 还是 multiprocess?

2014-07-24 20:46:48 +08:00
 leafonsword
循环10次太慢了,我想同时进行,我也知道multithread有GIL锁,所以multiprocess貌似是不错选择?
我还听说过一些其他高并发项目,如:gevent、stackless、pypy,这些和官方多进程有何区别?
4338 次点击
所在节点    Python
11 条回复
wy315700
2014-07-24 20:51:05 +08:00
multiprocess + pool 比较好

multithread + gevent也可以
heiher
2014-07-24 21:02:07 +08:00
线程用来使用cpu资源的,像这种基本就是I/O为主,使用异步I/O不就好了。
binux
2014-07-24 21:14:00 +08:00
GIL锁是锁语句执行的,IO等待又不会被锁
bigdude
2014-07-24 21:44:12 +08:00
gevent
ffffwh
2014-07-24 22:32:23 +08:00
异步+1
xavierskip
2014-07-24 22:40:05 +08:00
我之前测试的时候,threading比gevent快耶。
pandada8
2014-07-24 23:54:48 +08:00
处理速度永远大于你的抓取速度
withrock
2014-07-25 08:57:21 +08:00
我之前写过抓取糗事百科的虫,我的CPU有4个核,用threading的话,CPU的使用率不会超过25%。
Zuckonit
2014-07-25 09:31:41 +08:00
gevent吧
kingxsp
2014-07-25 10:10:44 +08:00
gevent 或者 asyncio
lianghui
2014-07-25 11:25:11 +08:00
prefork span with multithread

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

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

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

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

© 2021 V2EX