Көп агымдуу чөйрөдө HashMap колдонууда эмне туура эмес? … Бир HashMap инстанциясынашайкештештирилбестен бир нече жиптер кошулуп жатса, бул көйгөй. Болгону 1 жип HashMapды өзгөртүп жатса дагы жана башка жиптер ошол эле картадан синхрондоштуруусуз окуп жатса да, сизде көйгөйлөр пайда болот.
Сиз HashMapты көп агымдуу чөйрөдө колдоно аласызбы?
Сиз төмөнкүлөрдү текшеришиңиз керек: HashMap жаңыртууларынын баары жиптер жаралганга чейин бүтөт жана картаны түзгөн жип жиптерди айрыйт. Жиптер HashMap'ти окуу үчүн гана режиминде гана колдонуп жатышат – же алуу же алып салбастан итерация. Картаны жаңырткан темалар жок.
Эмне үчүн HashMap көп агымдуу чөйрөдө колдонулбашы керек, ал чексиз циклге алып келиши мүмкүнбү?
HashMap'тын демейки сыйымдуулугу 16 жана Жүктөө коэффициенти 0,75, бул картага 12-Ачкыч-Баалуу жуп киргенде HashMap сыйымдуулугун эки эсеге көбөйтөт (160,75=12). 2 жип HashMapга бир убакта кирүүгө аракет кылганда, анда сиз чексиз циклге туш болушуңуз мүмкүн. Жип 1 жана Жип 2 12-ачкыч-маани жуптарын коюуга аракет кылат.
HashMap алуу жип коопсузбу?
HashMap синхрондолгон эмес. Бул жип үчүн коопсуз эмес жана туура синхрондоштуруу коду жок көп жиптер арасында бөлүшүүгө болбойт, ал эми Hashtable шайкештештирилген.
Көп агымга эмне ылайыктууайлана-чөйрө?
Жооп: "ConcurrentHashMap"