没有引用计数的活动对象

时间:2015-08-13 01:53:19

标签: java multithreading garbage-collection jframe reference-counting

我已经阅读了帖子What are the roots?,但它没有解决我的问题。该线程基本上解释了在什么条件下对象准备垃圾收集。这里的问题是在某些情况下是否满足条件,如果是,这种行为是否会导致问题。

通过术语活跃,我的意思是:

  1. 尚未加入的Thread对象,
  2. 尚未关闭的JFrame对象(仍然是 有一个可见的GUI界面)。
  3. Java:A Beginner's Guide 一书中,我经常发现创建一些对象的代码,然后在它们仍处于活动状态时丢弃对它们的唯一(明显)引用。这会导致可能过早的垃圾收集并导致某些问题,或者运行时系统实际上有对这些活动对象的引用(因此在前面的文本中带括号的明显),所以程序员可以什么都没有?以下是两个例子:

    1)关注Thread

    {
      Thread thrd = new Thread(...);
      ...  // no thrd.join();
    }
    

    2)关注JFrame

    class SwingDemo {
      SwingDemo() {
        JFrame jfrm = new JFrame("A Simple Swing Application");
        ...
        jfrm.setVisible(true);
      }
      ...
    }
    

0 个答案:

没有答案