Python 多重处理以随机顺序生成数字

Python 多重处理以随机顺序生成数字,python,python-requests,multiprocessing,Python,Python Requests,Multiprocessing,我试图从一个网站获取请求,因为有超过200000个请求,所以我尝试使用Python中的多处理库 但是,它会按以下顺序生成文件名: test-0.json test-625000.json test-1250000.json test-1875000.json 我做错了什么?这是MWE import requests import multiprocessing as mp from numpy import arange output_path = "test-" de

我试图从一个网站获取请求,因为有超过200000个请求,所以我尝试使用Python中的多处理库

但是,它会按以下顺序生成文件名:

test-0.json
test-625000.json
test-1250000.json
test-1875000.json
我做错了什么?这是MWE

import requests
import multiprocessing as mp
from numpy import arange

output_path = "test-"

def read_jsons(file_num):
    output_file_name = output_path + str(file_num) + ".json"
    print (output_file_name)
    url = "www.google.com"
    payload = {}
    response = requests.request("GET", url,  data = payload)
    json_str = str(response.text.encode("utf8"), 'utf-8')
    with open(output_file_name, "w") as text_file:
        text_file.write(json_str)

p = mp.Pool(8)
p.map(read_jsons, arange(0, 20000000, 1))
p.close()
p.join()

多线程/多处理总是以不可预测的顺序进行。这个程序产生了数百万个进程,这些进程将以几乎随机的顺序排队和执行。这很奇怪,因为如果你对
url=“www.google.com”
下面的所有内容都进行了注释,你就可以把它整理好了吗?你对谷歌的请求可能需要不同的时间(您正在处理一个远程系统,您的请求数据包不会总是采用相同的路径到达该系统)。您不能保证多线程进程的执行顺序,但计算机是逻辑的,类似的进程需要相似的时间来运行。如果您消除了internet流量的完全随机性,您很可能会将其整理好。顺序对您来说重要吗(您需要解决方案)或者你只是问为什么会发生这种情况?这对我来说并不重要,但我也想知道如何按顺序进行。多线程/多处理总是以不可预测的顺序进行。这个程序生成数百万个进程,这些进程将以几乎随机的顺序排队和执行。这很奇怪,因为如果你对下面的所有内容都进行注释
url=“www.google.com”
,你会把它整理好吗?你对谷歌的请求可能需要不同的时间(你正在处理一个远程系统,而你的请求包并不总是通过相同的路径到达那里)。您不能保证多线程进程的执行顺序,但计算机是逻辑的,类似的进程需要相似的时间来运行。如果您消除了internet流量的完全随机性,您很可能会将其整理好。顺序对您来说重要吗(您需要解决方案)或者你只是问为什么会发生这种情况?这对我来说并不重要,但我也想知道如何才能做到这一点。