@Dima_E

Multiprocessing почему выполняет основной код?

print("начало")

def aa():
    time.sleep(1)
    print("Конец кода")


if __name__ == '__main__':
    p = Process(target=aa)
    p2 = Process(target=aa)
    p3 = Process(target=aa)
    p.start()
    p2.start()
    p3.start()

В этом примере при запуске multiprocessing помимо функции которая взята в таргет, выполняет основной код, почему ?
Выводом этого кода будет:
начало
начало
начало
начало
Конец кода
Конец кода
Конец кода

такое происходит со всем, если есть клики мышью он кликает при каждом запуске multiprocessing , как это исправить ?
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Потому что каждый новый процесс - это отдельный интерпретатор Python, который повторно импортирует скрипт, а при импорте выполняются все top-level инструкции.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
28 мар. 2024, в 21:17
5000 руб./за проект
28 мар. 2024, в 20:46
150000 руб./за проект
28 мар. 2024, в 20:37
50000 руб./за проект