Vad är det för fel att använda HashMap i flertrådsmiljö? … Det är ett problem om flera trådar läggs till i samma HashMap-instans utan att den synkroniseras. Även om bara en tråd modifierar en HashMap och andra trådar läser från samma karta utan synkronisering kommer du stöta på problem.
Kan du använda en HashMap i en flertrådsmiljö?
Du måste se till: Alla uppdateringar av HashMap är klara innan trådarna instansieras och tråden som skapar kartan delar också upp trådarna. Trådarna använder bara HashMap i skrivskyddat läge – antingen get eller iteration utan borttagning. Det finns inga trådar som uppdaterar kartan.
Varför HashMap inte ska användas i flertrådsmiljö, kan det också orsaka en oändlig loop?
Standardkapaciteten för HashMap är 16 och belastningsfaktorn är 0,75, vilket innebär att HashMap kommer att fördubbla sin kapacitet när det 12:e nyckel-värdeparet kommer in i kartan (160,75=12). När två trådar försöker komma åt HashMap samtidigt, kan du stöta på oändlig loop. Tråd 1 och tråd 2 försöker sätta det 12:e nyckel-värdeparet.
Är HashMap-tråden säker?
HashMap är osynkroniserad. Det är inte trådsäkert och kan inte delas mellan många trådar utan korrekt synkroniseringskod medan Hashtable är synkroniserat.
Vad som passar bäst för flertrådadmiljö?
Svaret är "ConcurrentHashMap"