pool.apply работает, но pool.apply_async с get () не работает - PullRequest
0 голосов
/ 30 мая 2019

Итак, у меня есть основной скрипт на python, который внутренне вызывает 25 других скриптов.Все эти 25 сценариев обращаются к общей папке, и она просто читает информацию из разных двоичных файлов в этой папке.

Я хочу, чтобы эти 25 сценариев были одинаково распределены по всем ядрам.Хотите достичь параллелизма

Он работает нормально с pool.apply, но когда я использую pool.apply_async с get (), я не получаю правильную информацию.Только частичная информация.

Кстати, эти сценарии используются для анализа дампов памяти.

from multiprocessing.pool import ThreadPool as Pool
pool_size=8
pool = Pool(pool_size)
x2=[pool.apply_async(func_script, (i,p,)) for i,p in 
enumerate(scripts_to_run)]
output = [z.get() for z in x2] 
print(output)

, поэтому эти func_scripts будут вызывать другие 25 сценариев

, почему это работает с пулом.применять ?в чем польза от pool.apply?Также, как я могу заставить это работать с pool.async ()

...