Я использую пул процессов. Эта логика, похоже, работает до недавнего времени.Почему я не собираюсь обрабатывать зомби? (CentOS Linux, python)
pool = multiprocessing.Pool(processes = 2*multiprocessing.cpu_count())
for p in processArgs:
pool.apply_async(myFunc, p)
pool.close()
pool.join()
Теперь, похоже, когда это выполняется, я в конечном итоге со всеми дочерними процессами в како состоянии и родительский процесс, кажется, не выполняется pool.join()
еще (на основе a
) на том, что несуществующей процессы являются все еще там и b
) о том, что логика, которая возникает следующая, кажется, не выполнена.
Несовершенные процессы - это зомби, верно? Это значит, что они умерли, но не получили, правильно?
[Does 'ps -el' говорят, что они зомби?] (Https://www.debian-administration.org/article/261/Finding_zombie_processes) Вы уверены, что пул завершил выполнение для всех элементов? –
Это показывает, что они зомби (присутствует Z). – vmayer
Должен ли я быть уверенным в выходе, прежде чем делать pool.close() или pool.join()? Честно говоря, я скопировал эту логику из примера и предположил, что пул закончил бы все предметы, прежде чем разрешить закрытие. – vmayer