他の場所にキャッチせずにスレッド内で例外が発生した場合、アプリケーション/インタプリタ/プロセス全体が終了しますか?それとも、スレッドだけを殺すのだろうか?スレッド内のキャッチされない例外は、スレッドまたはプロセス全体のみを強制終了しますか?
8
A
答えて
11
のは、それを試してみましょう:上記
import threading
import time
class ThreadWorker(threading.Thread):
def run(self):
print "Statement from a thread!"
raise Dead
class Main:
def __init__(self):
print "initializing the thread"
t = ThreadWorker()
t.start()
time.sleep(2)
print "Did it work?"
class Dead(Exception): pass
Main()
コードは次のような結果が得られますので、
> initializing the thread > Statement from a thread! > Exception in thread > Thread-1: Traceback (most recent call last): File > "C:\Python27\lib\threading.py", line 551, in __bootstrap_inner > self.run() File ".\pythreading.py", line 8, in run > raise Dead Dead > ----- here the interpreter sleeps for 2 seconds ----- > Did it work?
を、あなたの質問への答えは唯一のスレッド上げ例外がクラッシュしたということですそれはプログラム全体ではなく、存在します。 threadingドキュメントから
+0
私は同時スレッドプールを使用しています。スレッドが殺された場合、新しいスレッドはスレッドプールに生成されますか? –
5
:
スレッドの活動が開始されると、スレッドが 「生きている」とみなされます。 run()メソッドが正常に終了するか、処理されない例外が発生した場合には、その実行が停止します。 is_alive() メソッドは、スレッドが生きているかどうかをテストします。
も:スレッドが終了するまで
は(タイムアウト=なし)
待ちに参加。これにより、join()メソッドが呼び出されるスレッドが終了するまで( が正常または未処理の例外を介して)、またはオプションの タイムアウトが発生するまで、呼び出し元のスレッドがブロックされます。
つまり、キャッチされない例外はスレッドを終了する方法であり、親スレッドのjoin
呼び出しで検出されます。
関連する問題
- 1. キャッチされない例外(グループ= 0x94cabb20)でスレッドが終了する
- 2. UIスレッド以外のスレッドでアクティビティを強制終了または終了できますか?
- 3. Pythonスレッド化例外と終了をキャッチ
- 4. スレッドによって行われたアクションは、他のスレッドとプロセス全体を終了させますか?
- 5. Pythonの子スレッド内から親スレッドを強制終了できますか?
- 6. Android - 「キャッチされていない例外(グループ= 0x40015560)で終了するスレッド」
- 7. キャッチされていない例外が発生してスレッドが終了するのはなぜですか?
- 8. アプリケーションが終了しました - キャッチされない例外 'NSGenericException'、
- 9. Javaの別のスレッドからすぐにスレッドを強制終了するには?
- 10. Future.get(...)がスレッドを強制終了しないのはなぜですか?
- 11. java.lang.NoSuchMethodError:スレッド "main"内のmain例外プロセスが完了しましたか?
- 12. Javaスレッドはメッセージnullの例外で異常終了します。
- 13. sasプロセス全体を強制終了する
- 14. なぜStackoverflowExceptionは単なるスレッドではなく、プロセス全体を終了させるのですか?
- 15. プロセスが強制的に強制終了された場合の終了コード
- 16. プログラミングライブラリまたはモジュール内のプロセスとスレッドは、プロセス、カーネルレベルのスレッド、またはユーザーレベルのスレッドを意味しますか?
- 17. while(1)スレッドがプロセスを強制終了せずに殺される可能性はありますか?
- 18. Xcodeでスレッド終了をキャッチ
- 19. 実行中のスレッドの割り込み/強制終了
- 20. NSException型のキャッチされていない例外で終了、接続インスペクタ、スレッド1ブレークポイント1.1、複数のエラーなし
- 21. メインアクティビティを再開した後にスレッドを強制終了しますか?
- 22. Pythonスレッドからアプリケーション全体を終了するには?
- 23. BlackBerry - キャッチされない例外:アプリケーションが応答していません。プロセスが終了しました
- 24. NSException型のキャッチされていない例外で終了しますか?
- 25. スレッドを強制終了する方法を知るには?
- 26. スレッドを介して開始されたプロセスを終了する
- 27. 未知の例外(グループ= 0x4001b188)でスレッドが終了します。 Nullpointerexception
- 28. 外部コマンドを使わずにPerlでスレッド/プロセスをリストして強制終了するには?
- 29. Java環境でスレッドを強制終了するには?
- 30. swift3スレッド1:信号SIGABRTは、キャッチされない例外によりにアプリを終了「NSUnknownKeyException」
例外をスローするスレッドを作成しようとしましたか? – mbatchkarov