Можем ли да използваме hashmap в многонишкова среда?

Съдържание:

Можем ли да използваме hashmap в многонишкова среда?
Можем ли да използваме hashmap в многонишкова среда?
Anonim

Какво не е наред с 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"

Препоръчано: