sgo*_*les 6

不,它不符合垃圾收集条件.由于线程调度程序(在调用之后t.start( ))在可运行队列中调度线程,因此它不符合GC的条件.

检查线程是否仍在运行的方法之一是调用thread.isAlive().

final boolean isAlive( )
Run Code Online (Sandbox Code Playgroud)

isAlive( )如果调用它的线程仍在运行,则该方法返回true.否则返回false.在你的情况下,你总是可以调用t.isAlive()方法,只是为了检查线程是否存活.

当线程停止或结束其生命周期或尚未安排运行时(如Jon的代码片段),则它符合GC的条件.


Jon*_*eet 5

如果它已经启动,它就不符合GC的条件 - Thread.currentThread()毕竟正在运行的代码可以要求.

如果你刚刚创建它但没有启动它,像这样:

{
    Thread pointless = new Thread();
}
Run Code Online (Sandbox Code Playgroud)

然后我怀疑这有资格获得GC -但它是非常不寻常,但不启动它来创建一个线程.(我想在你开始它之前可能会抛出一个异常......)