Multithreading Python多处理如何使脚本更快?

Multithreading Python多处理如何使脚本更快?,multithreading,python-multiprocessing,Multithreading,Python Multiprocessing,Python 3.6 我正在写一个脚本来自动检查,以确保网站上的所有链接都能正常工作 我有一个版本,但它运行缓慢,因为python解释器一次只运行一个请求。我导入selenium以在列表中下拉链接。我从41000个链接开始。我摆脱了重复,现在我的列表中的链接减少到7300个。我使用请求模块只是检查响应代码。我知道多重处理就是答案,只要看看一堆不同的方法。哪一个最适合我的需要?我需要记住的唯一一件事是,我不能同时运行多个线程,因此我不会在服务器上发送带有请求的Web服务器线程。提前谢谢。这是我第一

Python 3.6

我正在写一个脚本来自动检查,以确保网站上的所有链接都能正常工作

我有一个版本,但它运行缓慢,因为python解释器一次只运行一个请求。我导入selenium以在列表中下拉链接。我从41000个链接开始。我摆脱了重复,现在我的列表中的链接减少到7300个。我使用请求模块只是检查响应代码。我知道多重处理就是答案,只要看看一堆不同的方法。哪一个最适合我的需要?我需要记住的唯一一件事是,我不能同时运行多个线程,因此我不会在服务器上发送带有请求的Web服务器线程。提前谢谢。这是我第一次在论坛上发帖,如果我没有遵守协议,请原谅。提前谢谢

特拉维斯

下面是一个函数,用于检查与python请求模块的链接,我正在尝试加速该模块:

def检查链接(y):
对于y中的ii:
尝试:
r=requests.get(ii.get_属性('href'))
rc=r.状态\ U代码
打印(ii.get_属性('href'),'',rc)
例外情况除外,如e:
日志写入(str(e))
最后:

pass
如果只需要对列表中的所有项目应用相同的函数,则只需使用流程池,并映射输入。下面是一个简单的例子:

from multiprocessing import pool

def square(x):
    return {x: x**2}

p = pool.Pool()
results = p.imap_unordered(square, range(10))

for r in results:
    print(r)
在本例中,我使用了
imap\u unordered
,但也查看了
map
imap
。你应该选择最符合你需要的