Как исправить ошибку Python для многопроцессорных пулов - PullRequest
1 голос
/ 18 апреля 2019

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

Я попытался использовать многопроцессорную библиотеку, но безрезультатно.Я провёл в интернете несколько дней, пытаясь найти что-нибудь полезное, но безрезультатно.

from multiprocessing import Pool

def foo(x):
    return x

if __name__ == '__main__':
    print('starting')
    pool = Pool(1)
    print('pool created')
    result = pool.map(foo,[1,2,3])
    print('done mapping')
    print(result)
    pool.close()
    pool.join()
    print('final done')

Я ожидал, что результат будет примерно таким:

starting
pool created
done mapping
[1, 2, 3]
final done

Что яполучить, когда я использую встроенный отладчик WIng IDE.Когда я запускаю программу нормально, я получаю это:

starting

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

Я использую Windows 10 Education 1803 build 17134.706 на ноутбуке.

...