次のコードで次の動作に気づきました(threading.Timerクラスを使用)。
import threading
def ontimer():
print threading.current_thread()
def main():
timer = threading.Timer(2, ontimer)
timer.start()
print threading.current_thread()
timer.cancel()
if timer.isAlive():
print "Timer is still alive"
if timer.finished:
print "Timer is finished"
if __name__ == "__main__":
main()
コードの出力は次のとおりです。
<_MainThread(MainThread, started 5836)>
Timer is still alive
Timer is finished
出力からわかるように、タイマーオブジェクトはまだ生きていて、同時に終了しています。
実際、私は同様の関数を何百回も呼び出したいのですが、それらの「生きている」タイマーがパフォーマンスに影響を与えるのではないかと思います。
タイマーオブジェクトを適切に停止またはキャンセルしたいのですが。私はそれを正しくやっていますか?
ありがとうございました