内のすべてのスレッドを維持するために、静的リストを使用してこんにちは、私は同じように、すべての実行中のスレッドを維持するために静的リストを使用したい:Javaの
public class MyClass {
public static final List<Thread> threads = new ArrayList<>();
public static void main(String[] args) throws InterruptedException {
new Thread(() -> {
MyClass.threads.add(Thread.currentThread());
try {
Thread.sleep(2000);
} catch (Exception e) {
}
}).start();
for (int i = 0; i < 10; i++) {
if (!threads.isEmpty()) {
Thread t = threads.get(0);
System.out.println(t.isAlive());
}
Thread.sleep(1000);
}
}
}
上記のコードは
true
true
false
false
...
のプリントアウトを与えます
これは、2秒後にスレッドが復帰するのと同様に予想されます。
私の質問は:スレッドが返された後にスレッドの静的リストに追加されたスレッドは消えてしまいますか?つまり、リスト内のスレッドオブジェクトが、スレッドが戻った後のある時点でヌルになることを期待していますか?またはスレッドオブジェクトが無限に表示されますか? GCはここで果たしますか?
*スレッドが返された後に消えてしまうスレッドの静的リストに追加されたスレッドは削除されますか?*削除した場合のみ。 –