"スレッドの実行メソッドが最後の命令を実行したとき、スレッドはオブジェクトとして死ぬ" はスレッドの1つの演習では偽であると言われています。 なぜそれが間違っていますか?スレッドに関する概念(スレッドが死ぬとき)
答えて
これは奇妙な質問です。 「物体としての死」は従来の用語ではない。
Threadオブジェクトのインスタンスは、ほかのJavaオブジェクトと同様に動作します。もう到達できなくなるとすぐにガベージコレクションが行われます。ガーベージコレクションの詳細については、https://stackoverflow.com/a/5690468/3765428を参照してください。いくつかの他の目的は、保持またはスレッドオブジェクトを指すように
Object thread = new Thread()
ニットニットを選択しますが、 'Thread'オブジェクトと他のオブジェクトの間には小さな違いがあります。言語の仕組みに違いはありませんが、実際的な違いです。あなたのプログラムが新しい 'Thread'オブジェクトを作成し、スレッドを開始し、参照を投げ捨てると、 'Thread'オブジェクトは新しいスレッドのスタックから隠された参照を介して引き続き到達可能です。少なくともスレッドが実行されている間は引き続き到達可能です。 –
は、「ダイ」を定義するために一般的に を必要とします。例: Object[] threads = [thread, ...] //Psudo code
スレッドオブジェクトが指し示す/保持している/などのスレッドオブジェクトとそれが破棄されていない限り、それはまだ '生きている'です。
とオブジェクトへの1ポイント、それはまだそれがに(すべてのオブジェクトに存在する)Dispose()
メソッドを呼び出すようにするためにGarbageCollector(GC)サイクルを待つ必要がない場合でも、それを「殺す」
- 1. C++スレッドの概念
- 2. atexitは他のスレッドが死ぬのを待ちますか?
- 3. Activity.onCreate()からスレッドを作成しないで死ぬこと
- 4. スレッドAが死んだときにスレッドAの内部でスレッドBの動作が発生する
- 5. HYBRIS - 関係概念
- 6. 長すぎるとサイトが死ぬ?
- 7. 変数に関する概念言語
- 8. ディレクトリを変更するときにbash whiptailが死ぬ
- 9. 後で再確立するときにソケットが死ぬ
- 10. 概念化ヘルプ(アクセス関係)
- 11. mysql関数の概念
- 12. ブラウザで実行されているJavaScriptの単一スレッドの概念
- 13. ruby net/ssh channelが死ぬ?
- 14. 手動で開始されたスレッドが死ぬのを防ぐにはどうすればよいですか?
- 15. 概念 - javaとandroid
- 16. sqlite概念からcoredata概念へ?
- 17. Docker - Prometheusコンテナがすぐに死ぬ
- 18. 概念
- 19. jQueryの(死ぬ)は
- 20. なぜC#スレッドが死んでいるのですか?
- 21. は私のスクリプトは、死ぬべきか?
- 22. キーバインディングがなぜ死ぬのですか?
- 23. クラスの概念
- 24. 概念クラス図
- 25. プレーフレームワークの概念
- 26. 概念:APIレベルテスト
- 27. インデックスアクセスの概念
- 28. メークファイルの概念
- 29. ACLプリンシパルとGrantedAuthorityの概念
- 30. セレンとc#の概念
おそらく、 'Object'自体が次のGarbageCollectorサイクルまで破壊されないからです。 –
実行を終了すると、 'Thread'オブジェクトはGCedされません。最初にすべての参照を削除する必要があります。 –