Java 关于线程的概念(线程何时死亡)

Java 关于线程的概念(线程何时死亡),java,multithreading,Java,Multithreading,当线程的run方法执行其最后一条指令时,该线程作为对象终止 在我的一个线程练习中被认为是错误的; 为什么不正确?这是个奇怪的问题。“作为对象死亡”不是一个常规术语 线程对象的实例的行为与任何其他Java对象一样。一旦再也够不到它,它就会被垃圾收集。有关garbace collection的更多信息,请参阅。需要定义“模具”, 通常-变量指向的对象 又名: 对象线程=新线程() 只要其他对象保持或指向线程对象,线程就处于活动状态。 e、 g.Object[]threads=[thread,…]//

当线程的run方法执行其最后一条指令时,该线程作为对象终止 在我的一个线程练习中被认为是错误的; 为什么不正确?这是个奇怪的问题。“作为对象死亡”不是一个常规术语

线程对象的实例的行为与任何其他Java对象一样。一旦再也够不到它,它就会被垃圾收集。有关garbace collection的更多信息,请参阅。

需要定义“模具”, 通常-变量指向的对象 又名:

对象线程=新线程()
只要其他对象保持或指向线程对象,线程就处于活动状态。 e、 g.
Object[]threads=[thread,…]///Psudo-code
所以,只要threads对象指向/持有/etc线程对象并且它没有被处理,它仍然是“活动的”


即使没有人指向该对象,它仍然必须等待垃圾收集器(GC)循环,以便调用
Dispose()
方法(存在于每个对象中)来“杀死”它

,这可能是因为
对象本身在下一个垃圾收集器循环之前不会被销毁。不确定这是否是预期的答案,尽管
线程
对象不会在您完成运行后立即被GCed。必须首先删除对它的所有引用。虽然有点吹毛求疵,但是
线程
对象和其他对象之间有一个很小的区别。这不是语言工作方式的不同,而是实际的不同。如果您的程序创建了一个新的
线程
对象,启动线程并丢弃引用;然后,
线程
对象将继续通过新线程堆栈中的隐藏引用进行访问。至少在线程运行期间,它将继续可访问。