参考一如故往博客:https://blog.csdn.net/qq_37616069/article/details/79831013?utm_source=blogxgwz5
使用concurrent.futures中ProcessPoolExecutor创建进程池,需要使用Queue来完成进程通信时,需要使用multiprocessing.Manager()中的Queue(),而不是multiprocessing.Queue(),否则会报错。
示例代码:
if __name__ == "__main__":
result = findSameId(file_path)
print(len(result))
q = Manager().Queue(len(result))
for key in result:
q.put(key)
if not os.path.exists(new_train_data_dir):
os.makedirs(new_train_data_dir)
executor = ProcessPoolExecutor(max_workers=process_num)
task_list = [executor.submit(saveNpy, train1_path,train2_path, result,new_train_data_dir,q) for n in range(6)]
def saveNpy(trai