2

我已经看到许多 Thread java 示例和 Runnable 对象被创建为任务并传递给线程。由于没有引用这些任务,那么为什么这个任务没有被 java 垃圾收集呢?还是垃圾收集了,我在这里问错了问题?请分享您宝贵的想法。

4

1 回答 1

3

您没有对对象的显式引用这一事实并不意味着内部 JVM 对象不持有它。

举个例子:

frame.add(new JButton("foobar"));

从开发人员的角度来看,没有对它的引用,但框架内部有一个组件列表。这就是线程发生的情况,内部调度程序必须确保对它们保持引用。

线程本身将在从调度程序释放时被垃圾收集(因此不再有效地存在对它的引用)

于 2012-10-02T00:47:15.327 回答