Python multiprocessing.dummy在windows而不是linux上正常工作
我正在编写代码来测试bucket在不同云中的存在性。对于并行执行,我们创建了3个池,并使用imap并行调用和运行这三个池。但一旦一个池完成,它就不会等待另一个池完成,主程序通过执行程序的其余部分来打印结果。这个问题出现在Linux上,但在使用imap()的windows上运行正常 已尝试无序使用map、imap和imap_Python multiprocessing.dummy在windows而不是linux上正常工作,python,python-multiprocessing,pool,Python,Python Multiprocessing,Pool,我正在编写代码来测试bucket在不同云中的存在性。对于并行执行,我们创建了3个池,并使用imap并行调用和运行这三个池。但一旦一个池完成,它就不会等待另一个池完成,主程序通过执行程序的其余部分来打印结果。这个问题出现在Linux上,但在使用imap()的windows上运行正常 已尝试无序使用map、imap和imap_ from multiprocessing.dummy import Pool def cloud1(bucket_name): some code to fetch
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中那样打印输出。此代码实际运行吗?我发现
bucket\u names[]
应该是bucket\u names=[]
已经更新了代码。谢谢你指出。我明白你想做什么了。对于GNULinux,您实际上可以使用fork
创建不同的进程,如从os导入fork创建的。以后谢谢我。您可以在Colab中创建143个进程。但是如果我需要在windows和linux上运行相同的代码,您可以创建一个check变量,为windows分配代码,为linux分配代码。python中有一个名为plaform
的模块。签出并打印platform.platform()
。此代码实际运行吗?我发现bucket\u names[]
应该是bucket\u names=[]
已经更新了代码。谢谢你指出。我明白你想做什么了。对于GNULinux,您实际上可以使用fork
创建不同的进程,如从os导入fork
创建的。以后谢谢我。您可以在Colab中创建143个进程。但是如果我需要在windows和linux上运行相同的代码,您可以创建一个check变量,为windows分配代码,为linux分配代码。python中有一个名为plaform
的模块。签出并打印platform.platform()
。