Kunnen we hashmap gebruiken in een omgeving met meerdere threads?

Inhoudsopgave:

Kunnen we hashmap gebruiken in een omgeving met meerdere threads?
Kunnen we hashmap gebruiken in een omgeving met meerdere threads?
Anonim

Wat is er mis met HashMap in een multithreaded omgeving? … Het is een probleem als meerdere threads worden toegevoegd aan dezelfde HashMap-instantie zonder dat deze wordt gesynchroniseerd. Zelfs als slechts 1 thread een HashMap aan het wijzigen is en andere threads lezen van dezelfde kaart zonder synchronisatie, zul je problemen tegenkomen.

Kun je een HashMap gebruiken in een omgeving met meerdere threads?

Je moet ervoor zorgen: Alle updates van de HashMap zijn voltooid voordat de threads worden geïnstantieerd en de thread die de kaart maakt, splitst ook de threads. De threads gebruiken alleen de HashMap in de alleen-lezen modus – ofwel ophalen of herhalen zonder verwijderen. Er zijn geen threads die de kaart bijwerken.

Waarom HashMap niet mag worden gebruikt in een multithreaded-omgeving, kan het ook een oneindige lus veroorzaken?

De standaardcapaciteit van HashMap is 16 en de belastingsfactor is 0,75, wat betekent dat HashMap zijn capaciteit zal verdubbelen wanneer het 12e sleutel-waardepaar op de kaart verschijnt (160,75=12). Wanneer 2 threads tegelijkertijd toegang proberen te krijgen tot HashMap, dan kunt u een oneindige lus tegenkomen. Thread 1 en Thread 2 proberen het 12e sleutel-waardepaar te plaatsen.

Is HashMap thread veilig?

HashMap is niet gesynchroniseerd. Het is niet thread-safe en kan niet worden gedeeld tussen veel threads zonder de juiste synchronisatiecode, terwijl Hashtable is gesynchroniseerd.

Wat is het meest geschikt voor multithreadedomgeving?

Antwoord is "ConcurrentHashMap"

Aanbevolen:

Interessante artikelen
Wanneer begon de congregatie?
Lees verder

Wanneer begon de congregatie?

Congregationalisme, christelijke beweging die ontstond in Engeland in de late 16e en 17e eeuw. Het neemt een theologische positie in ergens tussen het presbyterianisme en het meer radicale protestantisme van de baptisten en quakers in. Wanneer werden puriteinen Congregationalisten?

Is kelsie gevonden?
Lees verder

Is kelsie gevonden?

Het lichaam van Schelling is nooit gevonden en er is ook geen DNA-bewijs van haar moord, met als enige achtergelaten spoor van de jonge vrouw haar verlaten auto. Op videobeelden van Lucas was te zien hoe hij haar bankkaart gebruikte en haar voertuig verplaatste in de dagen na haar verdwijning in Pueblo, schreef het Denver Channel.

Waarom vonden de nika-rellen plaats?
Lees verder

Waarom vonden de nika-rellen plaats?

De Nika Rebellion, of liever de Nika Riots zoals het vaker wordt genoemd, begon als een meningsverschil over wagenrennen. … Keizer Justinianus was vaak aanwezig bij de races en toeschouwers maakten regelmatig van de gelegenheid gebruik om tussen de wedstrijden door politieke eisen naar hem te schreeuwen.