Koʻp tarmoqli muhitda HashMapdan foydalanishda nima xato? … Agar bir xil HashMap namunasigasinxronlashtirilmagan holda bir nechta mavzular qoʻshilayotgan boʻlsa, bu muammo. Hatto 1 ta mavzu HashMapni o‘zgartirayotgan bo‘lsa va boshqa mavzular o‘sha xaritadan sinxronizatsiyasiz o‘qiyotgan bo‘lsa ham, muammoga duch kelasiz.
Koʻp tarmoqli muhitda HashMapdan foydalana olasizmi?
Siz quyidagilarga ishonch hosil qilishingiz kerak: HashMap-dagi barcha yangilanishlar mavzular yaratilgunga qadar tugallanadi va xaritani yaratuvchi ip ham iplarni bogʻlaydi. Mavzular faqat HashMap-dan faqat oʻqish rejimida foydalanmoqda – olish yoki olib tashlashsiz takrorlash. Xaritani yangilaydigan mavzular yoʻq.
Nega HashMap koʻp tarmoqli muhitda ishlatilmasligi kerak, u ham cheksiz tsiklga olib kelishi mumkinmi?
HashMap’ning standart sig’imi 16 va Yuklash koeffitsienti 0,75, ya’ni 12-chi kalit-qiymat juftligi xaritaga kiritilganda HashMap o’z imkoniyatlarini ikki baravar oshiradi (160,75=12). Agar 2 ta mavzu bir vaqtning oʻzida HashMap-ga kirishga harakat qilsa, siz cheksiz tsiklga duch kelishingiz mumkin. 1-mavzu va 2-mavzu 12-kalit-qiymat juftligini qo‘yishga harakat qiladi.
HashMap olish uchun mavzu xavfsizmi?
HashMap sinxronlashtirilmagan. Bu mavzu uchun xavfsiz emas va tegishli sinxronizatsiya kodisiz koʻplab mavzular oʻrtasida almashish mumkin emas, Hashtable esa sinxronlangan.
Koʻp tarmoqli uchun nima eng mos keladimuhit?
Javob: "ConcurrentHashMap"