Kan ons hashmap in multithreaded omgewing gebruik?

INHOUDSOPGAWE:

Kan ons hashmap in multithreaded omgewing gebruik?
Kan ons hashmap in multithreaded omgewing gebruik?
Anonim

Wat is fout om HashMap in multithreaded-omgewing te gebruik? … Dit is 'n probleem as veelvuldige drade by dieselfde HashMap-instansie gevoeg word sonder datdit gesinchroniseer word. Selfs al is net 1 draad besig om 'n HashMap te wysig en ander drade lees van dieselfde kaart af sonder sinchronisasie, sal jy probleme ondervind.

Kan jy 'n HashMap in 'n multithread-omgewing gebruik?

Jy moet seker maak: Al die opdaterings van die HashMap is voltooi voordat die drade geïnstansieer word en die draad wat die kaart skep, vurk ook die drade. Die drade gebruik net die HashMap in leesalleen-modus – óf kry óf herhaling sonder verwydering. Daar is geen drade wat die kaart opdateer nie.

Hoekom HashMap nie in multithreaded omgewing gebruik moet word nie, kan dit ook 'n oneindige lus veroorsaak?

Die verstekkapasiteit van HashMap is 16 en lasfaktor is 0.75, wat beteken dat HashMap sy kapasiteit sal verdubbel wanneer 12de Sleutel-Waarde-paar in die kaart inkom (160.75=12). Wanneer 2 draad gelyktydig toegang tot HashMap probeer kry, dan kan jy oneindige lus teëkom. Draad 1 en Draad 2 probeer om 12de sleutel-waarde-paar te plaas.

Is HashMap-draad veilig?

HashMap is nie-gesinchroniseer. Dit is nie draadveilig en kan nie tussen baie drade gedeel word sonder behoorlike sinchronisasiekode nie, terwyl Hashtable gesinchroniseer is.

Wat is die beste geskik vir multithreadedomgewing?

Antwoord is "ConcurrentHashMap"

Aanbeveel:

Interessante artikels
Wie is Indiese sekularisme anders as Amerikaanse sekularisme?
Lees meer

Wie is Indiese sekularisme anders as Amerikaanse sekularisme?

Verskil tussen Indiese en Amerikaanse Sekularisme: Terwyl die Indiese Staat die strategie van positiewe ingryping volg, volg die Amerikaanse Staat streng die beleid van die skeiding van godsdiens van politiek en meng nie in by die godsdienstige aktiwiteite van enige godsdiens nie.

Wie kan konvokasie bywoon?
Lees meer

Wie kan konvokasie bywoon?

Universiteitgebruik Die konvokasie kan egter ook algemene vergaderings hou, waar enige alumnus kan bywoon. Wat is die verskil tussen konvokasie en gradeplegtigheid? Graduands. Wat is die verskil tussen gradeplegtigheid en konvokasie?

Hoekom word dit pre-Columbiaans genoem?
Lees meer

Hoekom word dit pre-Columbiaans genoem?

Die woord pre-Columbian verwys na die era voor Christopher Columbus, maar soms kan dit die geskiedenis van Amerikaanse inheemse kulture insluit soos hulle voortgegaan het om te ontwikkel ná die Christopher Columbus se eerste landing in 1492, totdat hulle deur Europeërs verower of beïnvloed is, selfs al het dit dekades of selfs … gebeur Waarna verwys die term Pre-Columbian?