Eski senkronize koleksiyonlardan modern alternatiflere
Vector ve Hashtable'ı gerçek değiştirilebilirlik ve eşzamanlılık gereksinimlerine göre seçilen koleksiyonlarla değiştirin.
Kod Karşılaştırması
✕ Legacy synchronized collection
Hashtable<String, Session> sessions = new Hashtable<>(); sessions.put(id, session);
✓ Concurrent Collections API
ConcurrentMap<String, Session> sessions = new ConcurrentHashMap<>(); sessions.put(id, session);
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Bilinçli eşzamanlılık
Seçilen tür, paylaşım beklenip beklenmediğini belgeler.
Daha iyi ölçeklenebilirlik
ConcurrentHashMap, normal erişimde tüm tabloyu kapsayan tek bir kilitten kaçınır.
Modern API'ler
Güncel koleksiyon ve concurrent map işlemleriyle doğal biçimde çalışır.
Eski Yaklaşım
Hashtable
Modern Yaklaşım
ConcurrentHashMap
JDK'dan itibaren
5
Zorluk
Orta
JDK Desteği
Eski senkronize koleksiyonlardan modern alternatiflere
Mevcut
JDK 5'ten (Eylül 2004) itibaren geniş çapta kullanılabilir
Nasıl çalışır
Vector ve Hashtable, eski API'ler aracılığıyla her işlemi senkronize eder. Modern kod, iş parçacığına özel veriler için normalde ArrayList veya HashMap; paylaşılan değişiklik gerektiğinde ise bu amaç için tasarlanmış eşzamanlı koleksiyonlar kullanmalıdır.
İlgili Belgeler
Kanıt