3

Threadオブジェクトがある場合は、setDaemon(true)それを呼び出して、デーモン以外の他のすべてのスレッドが終了した場合に、このスレッドがアプリケーションのシャットダウンを妨げないようにマークすることができます。

この動作をすべての子スレッドに自動的に適用することは可能ですか? つまり、デーモン スレッドとしてマークされたスレッドがある場合、このスレッドによって生成されたすべてのスレッドも自動的にデーモン スレッドとしてマークされるようにする方法はありますか?

4

2 に答える 2

6

この動作をすべての子スレッドに自動的に適用することは可能ですか?

デフォルトでは次のようになっているため、これを行う必要はありません。

新しく作成されたスレッドは、それを作成しているスレッドが現在デーモン スレッドとしてマークされている場合にのみ、最初はデーモン スレッドとしてマークされます。メソッド setDaemon を使用して、スレッドがデーモンかどうかを変更できます。

これを参照してください。

于 2013-07-20T10:04:05.603 に答える
2

を使用してThreadGroup、ThreadGroup を daemon: に設定しmyThreadGroup.setDaemon(true)、新しい Thread を作成するときにこの TreadGroup を使用できます。

ThreadGroup myThreadGroup = new ThreadGroup(...);
myThreadGroup.setDaemon(true);

// ... and every time you create a thread:
Thread myThread = new Thread(myThreadGroup, "My #n Thread") { ... };
// ...
于 2013-07-20T10:03:38.233 に答える