私はビデオを処理していて、複数の関心領域を5秒ごとに並行してチェックしたいと考えています。私が現在持っている機能が正しい方法でこれを達成しているかどうかを知りたい。 (私は彼らがすべて処理されていることを知っているが)領域の全てが並列に処理されている場合Pythonで5秒ごとに各項目の関数を実行します
def checkFrames():
timer = threading.Timer(5.0, checkFrames)
timer.daemon = True
timer.start()
if(started):
index = 0
for region in regions:
threading.Thread(target=processRegion, args=(frame, region, index)).start()
index += 1
は今、私は本当に言うことができません。このプログラムは、私が故意に他の領域の後ろを意図的にチェックしているときと比較して、ここでかなり遅く走ります。すべての領域の処理を同時に開始する必要はありません。
スレッドではなく複数のプロセスを起動する機能を変更することが、これが問題だったらどうするのでしょうか? –
はい。 Pythonのマルチプロセッシングライブラリを見てください:https://docs.python.org/2/library/multiprocessing.html?highlight=multiprocessing#module-multiprocessing –