HashMap'i çok iş parçacıklı ortamda kullanmanın nesi yanlış? … Birden çok iş parçacığının aynı HashMap örneğine senkronize edilmedeneklenmesi bir sorundur. Yalnızca 1 iş parçacığı bir HashMap'i değiştiriyor ve diğer iş parçacıkları aynı haritadan senkronizasyon olmadan okuyor olsa bile, sorunla karşılaşırsınız.
Çok iş parçacıklı bir ortamda HashMap kullanabilir misiniz?
Şunlardan emin olmalısınız: HashMap'teki tüm güncellemeler, iş parçacıkları somutlaştırılmadan önce tamamlanır ve haritayı oluşturan iş parçacığı da iş parçacıklarını çatallar. İş parçacıkları yalnızca HashMap'i s alt okunur modda kullanıyor - ya alma ya da kaldırmadan yineleme. Haritayı güncelleyen konu yok.
HashMap neden çok iş parçacıklı ortamda kullanılmamalı, sonsuz döngüye de neden olabilir mi?
HashMap'in varsayılan kapasitesi 16'dır ve Yük faktörü 0.75'tir; bu, 12. Anahtar-Değer çifti haritaya girdiğinde HashMap'in kapasitesini iki katına çıkaracağı anlamına gelir (160.75=12). 2 iş parçacığı aynı anda HashMap'e erişmeye çalıştığında, sonsuz döngüyle karşılaşabilirsiniz. Konu 1 ve Konu 2, 12. anahtar/değer çiftini koymaya çalışır.
HashMap iş parçacığı güvenli mi?
HashMap senkronize değil. İş parçacığı için güvenli değil ve uygun senkronizasyon kodu olmadan birçok iş parçacığı arasında paylaşılamazken Hashtable senkronize edilir.
Çok iş parçacıklı için en uygun olan şeyçevre?
Cevap "ConcurrentHashMap"