multiprocessing.dummy在Windows而非Linux上正常工作

时间:2019-07-05 09:26:37

标签: python python-multiprocessing pool

我正在编写代码以测试不同云中存储桶的存在。对于并行执行,创建了3个池,并使用imap并行调用和运行所有三个池。但是一旦一个池完成,它就不会等待其他池完成,并且主程序通过执行程序的其余部分来打印结果。该问题仅在Linux上出现。使用imap()在Windows上运行正常

尝试使用地图,imap和imap_unordered。

from multiprocessing.dummy import Pool

def cloud1(bucket_name):
    some code to fetch respective details
    return

def cloud2(bucket_name):
    some code to fetch respective details
    return

def cloud3(bucket_name):
    some code to fetch respective details
    return

bucket_names = ["bucket1","bucket2","bucket3"] # A list to store Bucket names

#Calling all function using pool
p1=Pool(15)
p2=Pool(15)
p3=Pool(50)
results1=p1.imap(cloud1, bucket_names)
results2=p2.imap(cloud2, bucket_names)
results3=p3.imap(cloud3, bucket_names)
p1.close()
p1.join()
p2.close()
p2.join()
p3.close()
p3.join()

#Printing output
print(results1)
print(results2)
print(results3)

代码应等待每个池完成执行,然后像在Windows中一样打印输出。

0 个答案:

没有答案