Какво не е наред с HashMap в многонишкова среда? … Проблем е, ако множество нишки се добавят към един и същ екземпляр на HashMap безтой да бъде синхронизиран. Дори ако само 1 нишка променя HashMap и други нишки четат от същата карта без синхронизация, ще срещнете проблеми.
Можете ли да използвате HashMap в многонишкова среда?
Трябва да се уверите: Всички актуализации на HashMap са завършени преди нишките да бъдат инстанцирани и нишката, която създава картата, също се разклонява. Нишките използват само HashMap в режим само за четене – или получаване, или повторение без премахване. Няма теми за актуализиране на картата.
Защо HashMap не трябва да се използва в многонишкова среда, може ли да причини и безкраен цикъл?
Капацитетът по подразбиране на HashMap е 16, а коефициентът на натоварване е 0,75, което означава, че HashMap ще удвои капацитета си, когато 12-тата двойка ключ-стойност влезе в картата (160,75=12). Когато 2 нишка се опита да получи достъп до HashMap едновременно, тогава може да срещнете безкраен цикъл. Нишка 1 и Нишка 2 се опитват да поставят 12-та двойка ключ-стойност.
Безопасен ли е HashMap?
HashMap не е синхронизиран. Не е безопасен за нишки и не може да бъде споделен между много нишки без подходящ код за синхронизиране, докато Hashtable е синхронизиран.
Какво е най-подходящо за многонишковсреда?
Отговорът е "ConcurrentHashMap"