多处理并列出 python



我在这里提出了另一个简单的问题,我真的需要一些帮助。我有一个网站列表,我想通过请求浏览它们。但是,为了加快速度,我想使用多处理。我该如何执行此操作?

例:

import requests
import threading
from threading import Thread
list_ex = ["www.google.com","www.bing.com","www.yahoo.com"]
def list_request():
for item in list_ex:
ex = request.get(list_ex)
print(ex.text)

该怎么做,但由于我有 100+ 所以网站:),所以我需要多处理

  • 您可以使用DASK进行多处理。

它将使用你所有的系统核心......而传统的python只使用一个核心

达斯克官方.....达斯克维基百科

多线程在这里是一个选项,因为获取 url 不是 CPU 密集型的,而是 I/O 密集型的。因此,单个进程可以有多个线程并行运行requests.get

import requests
from multiprocessing.pool import ThreadPool
def read_url(url):
return requests.get(url).text

urls = ["www.google.com","www.bing.com","www.yahoo.com"]
with ThreadPool() as pool:
texts = pool.map(read_url, urls)

您可以通过将ThreadPool替换为Pool来使用多处理。对于提供的三个 URL,我使用PoolThreadPool获得了类似的运行时,并且两者都比在循环中按顺序运行read_url更快。

相关内容

  • 没有找到相关文章

最新更新