Как запустить другой дочерний процесс самостоятельно в Python?

1

У меня есть функция python, которую я намерен запускать независимо. Для exmaple, def graphic() отвечает за все элементы GUI и отображает GUI def connect() эта функция постоянно прослушивает и подключается к другой системе.

Проблема состоит в том, что эти две функции не работают параллельно. Я использовал многопроцессорный модуль в python Это суть кода

p = Process ( target = graphic() , args = () )      
p1 = Process (target = connect() , args = () )
p.start()
p1.start()
p.join()
p1.join()

Эти 2 функции, хотя они выполняются в разных процессах, не работают параллельно. Я могу подключиться только к системам, если я закрываю GUI. Есть ли способ, который я могу обрабатывать процесс параллельно, где я могу запускать графические и связанные функции независимо?

  • 1
    Можете ли вы уточнить, пожалуйста? Какое поведение вы ожидаете от кода выше? Что значит "не работает параллельно"?
  • 0
    По сути, графическая функция отвечает за визуализацию графического интерфейса, который я кодировал с помощью Tkinter. Теперь функция соединения постоянно зацикливается и получает соединение от различных других систем. Итак, вот что я сделал. Я запустил эту программу и в другом терминале уволил от подчиненных систем, которые намеревались подключиться к этой главной системе. Суть в том, что соединение происходит только тогда, когда я закрываю графический интерфейс, я прекращаю графическую функцию. Это не так, как эти 2 функции работают независимо и параллельно.
Показать ещё 2 комментария
Теги:

1 ответ

4
Лучший ответ

Возможно, потому что вы вызываете функции вместо передачи ссылки на них? т.е. первые две строки должны быть:

p = Process(target=graphic, args=())
p1 = Process(target=connect, args=())
  • 2
    И, строго говоря, args=() не обязателен.
  • 0
    Хорошо поймал! Полностью посмотрел на это!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню