Hvad er der g alt med at bruge HashMap i multithreaded miljø? … Det er et problem, hvis flere tråde føjes til den samme HashMap-instans uden den er synkroniseret. Selvom kun 1 tråd ændrer et HashMap, og andre tråde læser fra det samme kort uden synkronisering, vil du løbe ind i problemer.
Kan du bruge et HashMap i et multithreaded-miljø?
Du skal sikre dig: Alle opdateringer til HashMap er fuldført, før trådene instantieres, og tråden, der skaber kortet, deler også trådene. Trådene bruger kun HashMap i skrivebeskyttet tilstand – enten get eller iteration uden fjernelse. Der er ingen tråde, der opdaterer kortet.
Hvorfor HashMap ikke bør bruges i flertrådede miljøer, kan det også forårsage en uendelig løkke?
Standardkapaciteten for HashMap er 16 og belastningsfaktoren er 0,75, hvilket betyder, at HashMap vil fordoble sin kapacitet, når det 12. nøgle-værdi-par kommer ind på kortet (160,75=12). Når 2 tråde forsøger at få adgang til HashMap samtidigt, kan du støde på uendelig løkke. Tråd 1 og Tråd 2 forsøger at sætte 12. nøgleværdi-par.
Er HashMap-tråden sikker?
HashMap er ikke-synkroniseret. Det er ikke trådsikkert og kan ikke deles mellem mange tråde uden korrekt synkroniseringskode, mens Hashtable er synkroniseret.
Hvad er bedst egnet til flertrådedemiljø?
Svaret er "ConcurrentHashMap"