"当一个线程的run方法执行了它的最后一条指令时,该线程作为一个对象死掉了#34; 据说在我的一个练习中是假的; 为什么这不正确?
答案 0 :(得分:1)
这是一个奇怪的问题。 "作为对象死亡"不是一个传统的术语。
Thread对象的实例与任何其他Java对象一样。一旦它不再可达,它将被垃圾收集。有关garbace集合的更多信息,请参阅https://stackoverflow.com/a/5690468/3765428。
答案 1 :(得分:0)
需要定义' die', 通常 - 变量指向的对象 AKA:
Object thread = new Thread()
只要其他对象持有或指向线程对象,它们就会存活。
例如Object[] threads = [thread, ...] //Psudo code
所以,只要线程对象指向/保持/等线程对象并且它没有被处置,它仍然是“活着”。
即使没有人指向该对象,它仍然必须等待GarbageCollector(GC)循环,以便它调用Dispose()
方法(存在于每个对象中)到'杀'它