Функция multipro c не использует все процессы после 2-й итерации цикла for - PullRequest
0 голосов
/ 22 февраля 2020

Вот структура кода

def func(item):
    N=40
    pool = Pool(N)
    pool.imap(does_task, path_list) # does_task is a function that we performs a task that can be abstracted from the problem.
    pool.close()
    pool.join()

if __name__ = "__main__":
    for k, v in x.items:
        func(v) # v is the path_list

В этом сценарии func() порождает 40 процессов для первой итерации, но я заметил, что она не порождает 40 процессов для второй итерации вперед.

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

Или, возможно, он работает, но с помощью команды ps -aux я не могу см. процессы.

Может кто-нибудь объяснить, пожалуйста, почему во 2-й итерации функция не использует все процессы.

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