Процесс Python порождает только один процесс в цикле - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть программа на Python 3.7, которую я пишу, в которой есть главный сценарий a.py, который создает экземпляр класса в другом сценарии b.py. Я хочу, чтобы a.py мог создавать несколько одновременных экземпляров моего класса в b.py, но код, который я использую для вызова b.py, кажется, порождает только один экземпляр за раз.

Код у меня выглядит так:

import b
from multithreading import Process

processes = []
while (True):
    dataFiles = getFilesFromDatabase()
    if len(dataFiles) > 0:
        for file in dataFiles:
            p = Process(target=b.class, args=(file,), name=file['name'])
            p.start()
            processes.append(p)

    sleep(60)

Когда dataFiles (список словарей) имеет несколько словарей, Process создается для dataFiles[0], но dataFiles[1] не запускается до тех пор, пока не завершится dataFiles[0]. Я нигде не звоню Process.join(), поэтому не уверен, что может быть не так. Нужно ли использовать Pool для этого? Что-то еще мне не хватает?

Любая помощь приветствуется!

...