Kas me saame kasutada hashmapi mitme lõimega keskkonnas?

Sisukord:

Kas me saame kasutada hashmapi mitme lõimega keskkonnas?
Kas me saame kasutada hashmapi mitme lõimega keskkonnas?
Anonim

Mis viga on HashMapi kasutamisel mitme lõimega keskkonnas? … See on probleem, kui samale HashMapi eksemplarile lisatakse mitu lõime ilma, et seda sünkroonitaks. Isegi kui ainult 1 lõim muudab HashMapi ja teised lõimed loevad sam alt kaardilt ilma sünkroonimiseta, tekib probleeme.

Kas saate HashMapi kasutada mitme lõimega keskkonnas?

Peate veenduma, et kõik HashMapi värskendused on lõpule viidud enne, kui lõimed instantseeritakse ja kaarti loov lõim ühendab ka lõimed. Lõimed kasutavad ainult HashMapi kirjutuskaitstud režiimis – kas hankige või itereerige ilma eemaldamiseta. Kaarti värskendavaid lõime pole.

Miks ei tohiks HashMapi kasutada mitme lõimega keskkonnas, kas see võib samuti põhjustada lõpmatu tsükli?

HashMapi vaikevõimsus on 16 ja koormustegur on 0,75, mis tähendab, et HashMap kahekordistab oma võimsust, kui kaardile siseneb 12. võtme-väärtuse paar (160,75=12). Kui 2 lõime proovib korraga juurde pääseda HashMapile, võib tekkida lõpmatu silmus. Lõim 1 ja lõim 2 proovivad panna 12. võtme-väärtuste paari.

Kas HashMapi lõime saamine on ohutu?

HashMap on sünkroonimata. See ei ole lõimekindel ja seda ei saa ilma õige sünkroonimiskoodita paljude lõimede vahel jagada, samas kui Hashtable on sünkroonitud.

Mis sobib kõige paremini mitmelõimelisekskeskkond?

Vastus on "ConcurrentHashMap"

Soovitan:

Huvitavad artiklid
Kellel tekib kapsli kontraktuur?
Loe rohkem

Kellel tekib kapsli kontraktuur?

Üldine esinemissagedus on üsna madal, hinnanguliselt 1 juhtum 1 miljonist aastas [89], kuid naistel, kellel see haigus tekib, võib tekkida kapsli kontraktuur ja efusioon kapsel. Teise võimalusena võivad naised esineda ka efusiooni ja massilise kahjustusega.

Kas lautsil on keeli?
Loe rohkem

Kas lautsil on keeli?

16. sajandiks kujunes välja lauto klassikaline vorm, mille kuus keelpillide käiku (ülimkursus üks keel) oli häälestatud G–c–f– a–d′–g′, alustades teisest G-st keskmise C all. Mitu keelt peaks lautsil olema? noot kõrgemale. Lautsil võib olla palju keeli, tavaliselt paarikaupa, mida nimetatakse "

Kas kaks raseduskotti tähendavad kaksikuid?
Loe rohkem

Kas kaks raseduskotti tähendavad kaksikuid?

Kaksikrasedus kahe platsenta ja kahe lootekottiga Looteveekotid. Õhukese seinaga kott, mis ümbritseb loodet raseduse ajal. Kott on täidetud loote valmistatud vedelikuga (amnionivedelik) ja platsenta lootepoolt katva membraaniga (amnion).