[解決済み] Pythonのスレッドからアプリケーション全体を終了させるには?
2023-05-30 06:31:53
質問
Pythonアプリケーションをスレッドから終了させるにはどうしたらよいですか?
sys.exit()
はそれが呼び出されたスレッドを終了させるだけなので、何の役にも立ちません。
を使いたいとは思いません。
os.kill()
という解決策は使いたくありません。
どのように解決するのですか?
メインスレッド以外のすべてのスレッドがデーモンである場合、最適な方法は一般的に
thread.interrupt_main()
-- どのスレッドもこれを用いて
KeyboardInterrupt
を発生させることができます。これは通常、メインスレッドから適度にきれいに終了することにつながります(メインスレッドのファイナライザが呼び出されることなどを含む)。
もちろん、この結果、いくつかの非デーモンスレッドがプロセス全体を生かし続けることになる場合、フォローアップを行う必要があります。
os._exit
でフォローする必要がありますが、私はそれは最後の手段だと考えています (たとえば
kill -9
のようなものです)。なぜなら、これは非常に無骨に物事を終了させるからです(ファイナライザは実行されません。
try/finally
のブロックになります。
with
のブロックがあります。
atexit
関数など)。
関連
-
[解決済み】Pythonのvirtualenvを離脱/終了/無効化する方法
-
[解決済み】クロススレッド操作が有効でない。作成されたスレッド以外のスレッドからアクセスされたコントロール
-
[解決済み] 他のスレッドからGUIを更新するにはどうすればよいですか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] プロセスとスレッドの違いは何ですか?
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonの要素別タプル演算(sumなど
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] 文字列のリストを内容に基づいてフィルタリングする
-
[解決済み] 古いバージョンのPythonにおける辞書のキーの並び順
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] CSVデータを処理する際、1行目のデータを無視する方法を教えてください。
-
[解決済み] pycharmがタブをスペースに自動変換する
-
[解決済み] Pythonの辞書にあるスレッドセーフについて
-
[解決済み] Pythonのスレッド内でsys.exit()が呼び出されたときに終了しないのはなぜですか?