1. ホーム
  2. python

[解決済み] メインプログラム終了時にスレッドを終了させるには?

2023-04-07 23:06:50

質問

無限ループのスレッドがある場合、メインプログラムが終了したとき(例えば、私が Ctrl + C )?

どのように解決するのですか?

この質問をチェックしてください。正解は、スレッドを正しい方法で終了させる方法についての素晴らしい説明があります。 Pythonでスレッドを終了させる方法はありますか?

キーボード割り込み信号(ctrl+c)でスレッドを停止させるには、例外 "KeyboardInterrupt" をキャッチして、終了前にクリーンアップすることができます。このように。

try:
    start_thread()  
except (KeyboardInterrupt, SystemExit):
    cleanup_stop_thread()
    sys.exit()

こうすることで、プログラムが突然終了したときにどうするかを制御することができます。

また、シグナルハンドラ(具体的にはSIGINTシグナル)を設定できる組み込みのシグナルモジュールを使用することもできます。 http://docs.python.org/library/signal.html