Ali lahko uporabljamo hashmap v večnitnem okolju?

Ali lahko uporabljamo hashmap v večnitnem okolju?
Ali lahko uporabljamo hashmap v večnitnem okolju?
Anonim

Kaj je narobe z uporabo HashMapa v večnitnem okolju? … Težava je, če se več niti dodaja istemu primerku HashMap, ne da bibil sinhroniziran. Tudi če samo ena nit spreminja HashMap in druge niti berejo iz istega zemljevida brez sinhronizacije, boste naleteli na težave.

Ali lahko uporabite HashMap v večnitnem okolju?

Prepričati se morate: Vse posodobitve HashMapa so končane, preden so niti instancirane, nit, ki ustvari zemljevid, pa tudi razcepi niti. Niti uporabljajo samo HashMap v načinu samo za branje – pridobivanje ali ponovitev brez odstranitve. Ni niti, ki bi posodabljale zemljevid.

Zakaj se HashMap ne sme uporabljati v večnitnem okolju, ali lahko povzroči tudi neskončno zanko?

Privzeta zmogljivost HashMapa je 16 in faktor obremenitve je 0,75, kar pomeni, da bo HashMap podvojil svojo zmogljivost, ko 12. par ključ-vrednost vnese na zemljevid (160,75=12). Ko poskušata 2 niti hkrati dostopati do HashMapa, lahko naletite na neskončno zanko. Nit 1 in nit 2 poskuša vstaviti 12. par ključ/vrednost.

Ali je HashMap varen za nit?

HashMap ni sinhroniziran. Ni varen za niti in ga ni mogoče deliti med več niti brez ustrezne sinhronizacijske kode, medtem ko je Hashtable sinhroniziran.

Kaj je najbolj primerno za večnitnostokolje?

Odgovor je "ConcurrentHashMap"

Priporočena: