Şunlar arasında hızlı bir soru var: Basit bir WeakRunnableList'im var. 'u temizlemeyi (ölü referansları kaldırmayı) ya da daha zarif ve daha hızlı bir çözüm var mı? Benim WeakRunnableList için tam kaynak:ArrayList <WeakReference <Runnable>> - En iyi nasıl toplanır?
6
A
cevap
6
İşte benim almam. WeakHashMap, sistematik olarak kaldırır, bu nedenle bu yeterlidir. HashCode/Runnable semantics eşittir dikkat edin.
da yorum için Are keySet entries of a WeakHashMap never null? WeakHashMap iteration and garbage collection
import java.util.WeakHashMap;
public class WeakRunnableList
{
private WeakHashMap<Runnable, Void> _items = new WeakHashMap<Runnable, Void>();
public void Add(Runnable r)
{
_items.put(r, null);
}
public void Execute()
{
Iterator<Runnable> iterator = _items.keySet().iterator();
while (iterator.hasNext()) {
Runnable runnable = iterator.next();
if (runnable != null) {
runnable.run();
iterator.remove();
}
}
}
}
1
item.get() çağrıları arasında bir yarış durumunuz var. Item.get() öğesini yerel bir değişkene yerleştiririm ve bunu kullanırdım.
İlgili konular
- 1. ArrayList <ArrayList <String>> öğesini nasıl sıralayabilirim?
- 2. ArrayList <> nasıl ayarlanır?
- 3. Java - anahtarı Hashmap <Sınıfı, ArrayList <Class>>
- 4. ArrayList <> listeyi al
- 5. ArrayList <HashMap <String, String >> String []
- 6. ArrayList <MyClass>'dan nasıl alabilirim?
- 7. /ItemList nerede olduğunu bir <code>ArrayList<ItemList></code></p> <p>var arrayList (Object)
- 8. String ArrayList <String> Casting []
- 9. ArrayList <ArrayList <String>> değerini (String) alın(); Java
- 10. ArrayList <String>'u [byte] dönüştürün []
- 11. HashTable değerleri Arraylist olarak nasıl edinilir?</p> <pre><code>ArrayList <Word> arr </code></pre> <p>sayesinde:
- 12. mockito ArrayList <String> Sorun
- 13. Dize Listeyle Karşılaştırma <Object> ArrayList?
- 14. Nasıl kullanılır? "<% = Request.getContextPath()%>" daha iyi "../"
- 15. difflib.get_close_matches Ben <code>difflib.get_close_matches</code> kullanarak en iyi maç puanı almaya çalışıyorum
- 16. IEnumerable <T> .Last() Liste <T> için en iyi duruma getirilmiştir?
- 17. gizler: my AppDeleagate en <strong>didFinishLaunchingWithOptions ise</strong></p> <p>: iOS 8
- 18. ArrayList <Long> Java'da azalan düzende nasıl sıralanır?
- 19. XPath - tüm elemanlar alt elemanlara belge</p> <pre><code><a> <b> <c/> <d/> </b> <b> <c/> <d/> </b> </a> </code></pre> <p>Verilen
- 20. Ben <strong>Bahar Boot</strong> (en son sürümünü, <strong>1.3.6</strong>) kullanıyorum
- 21. Bir ArrayList Gönderme <float[]> etkinlikler arasında (android)
- 22. Nasıl Dataset <Tuple2 <String, DeviceData >> Dönüştürücüsü Iterator <DeviceData>
- 23. MTU 1,2-1,2</strong> JSF <strong>ve <strong>JSP</strong> .... Kullanarak Koleksiyonları
- 24. "<%:" ne yapıyor?</p> <pre><code><%: Model.FirstName %> </code></pre> <p>"<%:" Ne vermez: do
- 25. LinkedLashMap'i Kotlin'deki değerlere göre sıralamak nasıl? tuşları ile ben</p> <pre><code>map.toSortedMap() </code></pre> <p>kullanabilirsiniz Ama KOTLIN değerlere göre LinkedHashMap sıralamak için en iyi yolu nedir
- 26. Statik nedir <T> List <T> methodName (Liste <? super T> giriş)
- 27. 'ArrayList' öğesini 'List <string>' (veya 'Liste <T>') 'ya LINQ
- 28. Şu izle ifadem tutan bana gösteriyor Şu anda bir</p> <pre><code>Expression<Func<T,bool>> </code></pre> <p>bir</p> <pre><code>Expression<Func<T,object>> </code></pre> <p>dönüştürmek çalışıyorum
- 29. Objective-C'de özel yönergeler oluşturmak mümkün mü?</p> <ul> <li>@interface</li> <li>@implementation</li> <li>@end</li> <li>@protocol bence</li> <li>@property</li> <li>@synthesize</li> </ul> <p>:
- 30. ArrayList <Object[]> dosyasını Object [] [] 'a Dönüştürme
Teşekkür bakın. Aslında sadece düzeltildi, sonrası :-) değişecek –