Python多处理池imap_无序

Python多处理池imap_无序,python,multiprocessing,pool,unordered,Python,Multiprocessing,Pool,Unordered,我使用的是Python多处理池imap\u无序 在生成器中,我在fillInputList中填充输入列表,将此输入列表发送到prepare\u data\u fill\u array 准备数据填充数组需要很长时间,它读取文件并填充数组 当数组被填充时,我将它们累积到累计数组中 fillInputList和prepare_data_fill_Array都有打印行,显示它们已输入函数 但是,没有一个是书面的,只有: 累加中的工人PID XXXX 累加中的工人PID XXXX 这些都是书面的 原因

我使用的是Python多处理池imap\u无序

在生成器中,我在fillInputList中填充输入列表,将此输入列表发送到prepare\u data\u fill\u array

准备数据填充数组需要很长时间,它读取文件并填充数组

当数组被填充时,我将它们累积到累计数组中

fillInputListprepare_data_fill_Array都有打印行,显示它们已输入函数

但是,没有一个是书面的,只有:

  • 累加中的工人PID XXXX

  • 累加中的工人PID XXXX

这些都是书面的

原因可能是什么,它没有等待准备数据\u填充\u数组完成

numf=10
chromNamesList=['chr1','chr2','chr3','chr4','chr5','chr6','chr7','chrX','chr8','chr9','chr10','chr11','chr12','chr13','chr14','chr15','chr16','chr17','chr18','chr20','chrY','chr19','chr22','chr21','chrM chrM ch
sim_nums=范围(0,nums+1)
sim_num_chr_tuples=((sim_num,chrLong)表示chromNamesList中的sim_num,表示chrLong)
对于pool.imap_无序的数组列表(准备_数据_填充_数组,(simNum、chrLong、x、y、z、a、b、c)对于simNum、sim_num\u chr_元组中的chrLong,chunksize=1):
打印('累加'%str(os.getpid())中的工作进程pid%s)
array1=arrayList[0]
array2=arrayList[1]
累加器阵列(累加器阵列1,阵列1)
累加器阵列(累加器阵列2,阵列2)

它是一个进程池。它只是启动进程并返回。您应该等待所有人完成他们正在做的事情,然后进入for循环。如何等待它们全部完成?在imap_无序使用的python文档中,它在for循环中被调用,并且没有额外的检查机制。所以我的理解是,无论何时返回结果,它都会进入for循环,这是一个进程池。它只是启动进程并返回。您应该等待所有人完成他们正在做的事情,然后进入for循环。如何等待它们全部完成?在imap_无序使用的python文档中,它在for循环中被调用,并且没有额外的检查机制。所以我的理解是,无论何时返回结果,它都会进入for循环。