Я пытаюсь одновременно запустить две функции в Python. Обе функции содержат петли while
. Я старался использовать потоки и многопроцессорность без радости. Выполняется только одна функция. Я прочитал и попробовал несколько примеров на Stack и net. Любая помощь будет оценена по достоинству. Заранее спасибо. Я новичок в Python.Запустите две функции, которые одновременно содержат петли в Python с использованием многопоточности
if __name__ == "__main__":
ap = argparse.ArgumentParser()
ap.add_argument("-c", "--conf", required=True,
help="path to the JSON configuration file")
args = vars(ap.parse_args())
# p1 = Process(target=main(args))
# p2 = Process(target=cameraHandler(args))
# p1.start()
# p2.start()
threadA = Thread(target = main(args))
threadB = Thread(target = cameraHandler(args))
threadA.run()
threadB.run()
threadA.join()
threadB.join()
Для правильной работы функций «в то же время» вам необходимо использовать «многопроцессорность». Кроме того, я надеюсь, вы понимаете, что '//' не является комментарием в Python ... вы хотите '#' –
@ juanpa.arrivillaga Это отличный ответ, молодец! И, как вы знаете, все это может быть достигнуто с помощью многопоточности. Кроме того, я знаю, что ## является комментарием в Python. Отличный ответ, вы, очевидно, знаете много! Почему вы не дали решение вопроса вместо отрицательного комментария? – Wazzi
Я просто просил разъяснений, потому что вы говорите, что хотите дважды запустить две функции * одновременно, а в CPython это невозможно с помощью 'multithreading', поскольку GIL гарантирует, что только один поток работает в интерпретаторе в один раз. Если вы действительно хотите использовать многоядерную архитектуру и запускать параллельные операции, вы должны использовать «многопроцессорность». API очень похож, поэтому, если это вас беспокоит, вы должны легко конвертировать свой код. Я не спустил тебя вниз. –