私はPythonで同時に2つの関数を実行しようとしています。両方の関数にはwhile
ループが含まれています。私はスレッドとマルチプロセッシングを喜んで使用しようとしました。 1つの関数だけが実行されます。私はスタックとネットでいくつかの例を読んで試しました。どんな助けもありがとう。前もって感謝します。私はPythonが初めてです。あなたの例ではマルチスレッドを使用してPythonでwhileループを同時に含む2つの関数を実行する
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のコメントであることを知っています。偉大な答えdoh、あなたは明らかにたくさん知っている!なぜあなたは否定的なコメントではなく、その質問に対する解決策を提示しませんでしたか? – Wazzi
GILは1つのスレッドだけがインタプリタで実行されることを保証しているので、あなたは2つの関数*を同時に実行したいと言っているため、CPythonでは 'マルチスレッド 'を使用することはできません。一度。本当にマルチコア・アーキテクチャーを活用し、並列に実行したい場合は、マルチプロセッシングを使用する必要があります。 APIは非常に似ているので、実際にはそれが問題であれば、コードを簡単に変換できるはずです。私はあなたにdownvoteしなかった。 –