2009-10-08 38 views
5

Yeni bir iş parçacığında yeni bir çalıştırılabilir yürüten bir ana iş parçacığım olduğunu düşünün. Şimdi, yeni iş parçacığı yürütülürken, Java VM belleği yetersiz çalışır ve bir OutOfMemoryError atar.OutOfMemoryError ayrı bir Java iş parçacığı içinde

Ne olur? Hedef iplik durur mu? Ana iş parçacığı devam edecek mi? Yeni Konu çöktüğünde, VM belleği bellekten geri alır ve yürütme devam edilsin mi?

cevap

7

new'un ayırma bölümü sırasında iş parçacıklarından biri OutOfMemoryError'u atar. Çökmeyi önlemek için, hata atıldıktan sonra önemli miktarda bellek boş olacaktır. Yani diğer iş parçacıkları devam edebilir ve bir süre için OOME için olası değildir.

OOME yakalanmazsa, iş parçacığı çıkar ve yakalanmamış istisna işleyicisi çağrılır. Çıkışta, iş parçacığı ve ilişkili nesneler her zamanki gibi çöp toplama için kullanılabilir olacaktır (başka yollarla referans verilmemesine bağlı).

İlgili konular