2016-04-11 13 views
0

Acaba FutureTask işini bitirdikten sonra ve sonuçtan başarılı bir şekilde sonuç alabilir miyim, FutureTask'ı temizlemek için temizlemek gerekir mi? Veya FutureTask işi bitirdikten sonra belirli bir süre sonra otomatik olarak temizlenecek mi?Cleanup FutureTask kullanıldıktan sonra

Teşekkür ederiz.

+1

Muhtemelen görevin sonucunun ne olduğuna bağlı. Eğer biraz pojo ise, muhtemelen gc'nin diğer pojolarla yaptığınız gibi çalışmasına izin vermek için tuttuğunuz tüm referansları bırakmanız yeterlidir. Gelecek, bir akış gibi kapanabilir bir kaynağa referans gösteriyorsa, onu kapatmak zorunda kalabilirsiniz - ya da geleceğin neden böyle bir kaynağı ilk başta tuttuğunu düşünün. – Thomas

cevap

2


FutureTask bir tür değişmezdir. Değeri ve durumu ayarlandıktan sonra bunlar değiştirilemez. Bunun dışında, FutureTask diğer herhangi bir Java nesnesi gibidir, bu yüzden hiçbir şey yapmanız gerekmez. Daha fazla referans olmadığı sürece GC için uygundur. Bunun anlamı, kapsam dışına çıktığında GCed olacaktır, ya da ısrar ederseniz referansı boş atabilirsiniz. Kodunuzu iyi yazdıysanız, herhangi bir referansa null koymamalısınız - her nesne mümkün olan en küçük kapsamda yaşamalıdır.

İlgili konular