Python文档显示了这样的内容
在CPython中,由于全局解释器锁,只有一个线程可以一次执行Python代码(尽管某些面向性能的库可能克服了这个限制)。如果您希望您的应用程序更好地利用多核计算机的计算资源,建议您使用多处理。但是,如果要同时运行多个I/O绑定任务,线程仍然是一个合适的模型。
有人能解释一下在我的情况下是否可以使用线程模块吗?
我要检测网站使用的框架。
下面是我的应用程序的工作原理
因为我有1000万个域名,这需要很长时间。所以我想通过使用线程来加速这个过程。
但我不确定我的应用程序是否绑定了I/O。有人能解释一下吗?
谢谢你
发布于 2014-05-06 23:50:36
我想,最昂贵的活动将是获取所有的urls。
所以你的问题的答案是:是的,你的应用程序很可能是I/O绑定的。
您计划一个一个地刮取域,这将导致处理时间非常长。你一定要同时这样做。一种解决方案是描述与刮取网站相关的在我对类似问题的回答中。
无论如何,您的urls数量似乎很大,您可能需要利用将工作分配给多个工作人员的优势--为此,您可以使用例如芹菜框架。但是,由于您的任务实际上是I/O绑定的,如果您的工作人员在多台计算机上工作,最好是具有独立的连接性,那么您只会获得一定的速度。我在DigitalOcean机器上做了类似的工作,而且效果很好。
https://stackoverflow.com/questions/23506323
复制相似问题