Python 如何同时多次执行循环以加快速度?

Python 如何同时多次执行循环以加快速度?,python,loops,server,progress,simultaneous,Python,Loops,Server,Progress,Simultaneous,我有一个Python脚本,它向服务器发送请求,并检查它们的响应。大约10%的响应是特殊的,所以当它遇到一条消息时,它会打印一条消息。 它进行了90000次迭代,我在命令提示符下打印了当前进度,如下所示: print('{0}/{1}{2}{3}{4}{5}'.format(str(current_iteration_number),"90000 ",speed, " requests/s, ready in: ", timeleft, " minutes."),end="\r") 它可以每秒

我有一个Python脚本,它向服务器发送请求,并检查它们的响应。大约10%的响应是特殊的,所以当它遇到一条消息时,它会打印一条消息。 它进行了90000次迭代,我在命令提示符下打印了当前进度,如下所示:

print('{0}/{1}{2}{3}{4}{5}'.format(str(current_iteration_number),"90000  ",speed, " requests/s, ready in: ", timeleft, " minutes."),end="\r")
它可以每秒处理2.5个请求,但我知道这至少可以快5倍。我通过同时执行同一脚本5次尝试了这一点(如果执行更多脚本,将导致服务器阻止我执行看起来像Ddos攻击的操作)。虽然这是可行的,但必须同时运行5个命令提示并手动加入结果并不是一种很好的方法


如何让Python自己同时执行5个循环,并打印连接的进度和结果?

您可以使用线程或多处理库。此外,如果您的操作是I/O绑定的,那么您可以使用asyncio库,这将为您提供单线程并发的优势。

-看看这些示例,也许第一个是您想要的。对于这个io绑定的任务,
线程化
而不是
多处理
可能就足够了。您能让服务器为每个请求做更多的工作吗?
import multiprocessing
import numpy as np
def my_loop(x):
    #some stuff (this here is a silly example since it could be vectorized)
    return x**2
pool = multiprocessing.Pool()
pool_list = [float(i) for i in range(90000)]
results = pool.map(my_loop,pool_list)