Biz çox yivli mühitdə hasshmap istifadə edə bilərik?

Biz çox yivli mühitdə hasshmap istifadə edə bilərik?
Biz çox yivli mühitdə hasshmap istifadə edə bilərik?
Anonim

Çox yivli mühitdə HashMap-dan istifadə etməkdə səhv nədir? … sinxronizasiya edilmədən eyni HashMap nümunəsinə çoxsaylı mövzular əlavə edilirsə, bu problemdir. Yalnız 1 başlıq HashMap-ı dəyişdirsə və digər mövzular sinxronizasiya olmadan eyni xəritədən oxusa belə, problemlərlə üzləşəcəksiniz.

Çox yivli mühitdə HashMap istifadə edə bilərsiniz?

Əmin olmalısınız: HashMap-a edilən bütün yeniləmələr mövzular yaradılmazdan əvvəl tamamlanır və xəritəni yaradan ip də ipləri kəsir. Mövzular yalnız oxumaq üçün rejimində HashMap-dan istifadə edir – ya alın, ya da silinmədən təkrarlayın. Xəritəni güncəlləyən mövzu yoxdur.

Niyə HashMap çox yivli mühitdə istifadə edilməməlidir o, sonsuz döngəyə də səbəb ola bilər?

HashMap-ın defolt tutumu 16 və Yük əmsalı 0,75-dir, yəni 12-ci Açar-Dəyər cütü xəritəyə daxil olduqda HashMap tutumunu ikiqat artıracaq (160,75=12). 2 başlıq HashMap-a eyni vaxtda daxil olmağa çalışdıqda, siz sonsuz döngə ilə qarşılaşa bilərsiniz. Mövzu 1 və Mövzu 2 12-ci açar-dəyər cütünü qoymağa çalışır.

HashMap mövzu almaq təhlükəsizdirmi?

HashMap sinxronlaşdırılmayıb. O, mövzu üçün təhlükəsiz deyil və lazımi sinxronizasiya kodu olmadan bir çox başlıq arasında paylaşıla bilməz, halbuki Hashtable sinxronizasiya olunur.

Çox iş parçacığı üçün ən uyğun olanımühit?

Cavab "ConcurrentHashMap"

Tövsiyə: