有可能创建尽可能多的线程来使用100%的CPU吗?它真的很高效吗?我计划用Python创建一个爬虫,为了使程序高效,我想创建尽可能多的线程,每个线程将下载一个网站。我试着在网上查找一些信息;不幸的是,我找不到太多。
发布于 2019-10-27 03:00:20
你混淆了你的术语,但这没问题。一个非常高层次的概述将会有所帮助。
并发性可以由IO限制(从磁盘读取和写入、http请求等)和CPU限制的工作(在大数据集上运行机器学习优化功能)组成。
对于IO受限的工作,我假设,实际上您的CPU并不是非常努力地工作,而是在等待数据返回。这与多处理形成对比,在多处理中,您可以使用计算机的多个内核来执行更密集的CPU限制工作。
也就是说,多线程可以帮助你。我建议对Python使用asyncio和aiohttp模块。这些将帮助您确保在等待返回某些响应的同时,软件可以继续处理其他请求。
当我需要做一些网页抓取时,我使用asyncio,aiohttp和bs4。
https://stackoverflow.com/questions/58573612
复制相似问题