SORU
11 Mart 2010, PERŞEMBE


Çöp toplama veya Java iş Parçacığı

Bu soru biraz sitede yayınlanmıştır. Ben daha hiç oraya doğru cevaplar bulmak, burada tekrar gönderiyorum.

public class TestThread {
    public static void main(String[] s) {
        // anonymous class extends Thread
        Thread t = new Thread() {
            public void run() {
                // infinite loop
                while (true) {
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                    }
                    // as long as this line printed out, you know it is alive.
                    System.out.println("thread is running...");
                }
            }
        };
        t.start(); // Line A
        t = null; // Line B
        // no more references for Thread t
        // another infinite loop
        while (true) {
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
            }
            System.gc();
            System.out.println("Executed System.gc()");
        } // The program will run forever until you use ^C to stop it
    }
}

Benim bir sorgu iş Parçacığı durdurmak falan değil. Sorumu başka şekilde sorayım. Satır(kod yukarıda) yeni bir konu başlar; ve B Hattı iplik referans null olun. Yani, JVM artık hiçbir başvuru var Parçacığı bir Nesne durumu çalışan(t)=Satır B boş olarak (). Benim sorum ana parçacığının çalıştığı kadar, neden bu konuyu ana konuya hiçbir referans yok) çalışmaya devam eder mi. Başına benim anladığım kadarıyla, bu iş parçacığı nesnesi olması gereken çöp toplama sonrası B Hattı denedim bu kod çalıştırmak için 5 dakika ve daha fazla talep, Java çalışma Zamanı için çalıştırın GC, ama konu sadece durmuyor.

Kod hem de soru açık bu sefer olur umarım.

CEVAP
11 Mart 2010, PERŞEMBE


Çalışan bir iş parçacığı diye adlandırılan çöp toplama kökü olarak kabul edilir ve bu şeyler çöplük olmaktan eşyalarını tutmak biridir. Çöp toplayıcı nesne olup olmadığını belirler 'reachable' ya değil, her zaman referans noktası olarak çöp toplayıcı köklerinin kümesini kullanarak konuşuyor.

Bu yüzden ana konu çöp toplanan düşünmüyoruz, hiç kimse ya da bir referans.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Liberator

    Liberator

    14 EYLÜL 2007
  • sonia989

    sonia989

    26 EKİM 2006
  • TheDroidDemos

    TheDroidDemo

    15 ŞUBAT 2011