4

Javaでぶら下がっているスレッドはどうなりますか?

アプリケーションを作成し、それが複数のスレッドを生成する場合のように。そして、スレッドの1つが終了せず、メインプログラムがその前に終了します。このぶら下がっているスレッドはどうなりますか?スレッドプールに無限にとどまるのでしょうか、それともJVMがしきい値の期間後にスレッドを強制終了するのでしょうか?

4

1 に答える 1

9

スレッドが「デーモン」としてマークされているかどうかによって異なります。JVMが終了すると、デーモンスレッドは強制終了されます。デーモンではないスレッドがある場合、JVMはまったく終了しません。それらのスレッドが最初に終了するのを待ちます。

デフォルトでは、スレッドは親スレッドのデーモンステータスを取得します。メインスレッドにはデーモンが設定されfalseているため、メインスレッドによってフォークされたスレッドもすべてになりますfalse。スレッドが次のように開始するtrue 前に、デーモンフラグをに設定できます。

Thread thread = new Thread(...);
thread.setDaemon(true);
thread.start();
于 2012-04-05T12:59:49.763 に答える