multiprocessing.dummy работает правильно на окнах, а не на Linux - PullRequest
1 голос
/ 05 июля 2019

Я пишу код для проверки существования корзины в разных облаках.Для параллельного выполнения создали 3 пула и с помощью imap вызывали и запускали все три параллельно.Но как только один пул завершен, он не ожидает завершения другого пула, и основная программа печатает результат, выполняя оставшуюся часть программы.Проблема возникает только в Linux. Он работает нормально для окон, использующих imap ()

. Попытался использовать map, 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...