Können wir Hashmap in einer Multithread-Umgebung verwenden?

Inhaltsverzeichnis:

Können wir Hashmap in einer Multithread-Umgebung verwenden?
Können wir Hashmap in einer Multithread-Umgebung verwenden?
Anonim

Was ist falsch bei der Verwendung von HashMap in einer Multithread-Umgebung? … Es ist ein Problem, wenn mehrere Threads zu derselben HashMap-Instanz hinzufügen, ohne dass sie synchronisiert wird. Selbst wenn nur 1 Thread eine HashMap modifiziert und andere Threads ohne Synchronisierung von derselben Map lesen, werden Sie auf Probleme stoßen.

Können Sie eine HashMap in einer Multithread-Umgebung verwenden?

Sie müssen Folgendes sicherstellen: Alle Aktualisierungen der HashMap sind abgeschlossen, bevor die Threads instanziiert werden, und der Thread, der die Map erstellt, teilt auch die Threads. Die Threads verwenden die HashMap nur im Read-Only-Modus – entweder Get oder Iteration ohne Remove. Es gibt keine Threads zum Aktualisieren der Karte.

Warum HashMap nicht in einer Multithread-Umgebung verwendet werden sollte, kann es auch eine Endlosschleife verursachen?

Die Standardkapazität von HashMap ist 16 und der Ladefaktor ist 0,75, was bedeutet, dass HashMap seine Kapazität verdoppelt, wenn das 12. Schlüssel-Wert-Paar in die Karte eintritt (160,75=12). Wenn 2 Threads gleichzeitig versuchen, auf HashMap zuzugreifen, kann es zu einer Endlosschleife kommen. Thread 1 und Thread 2 versuchen, das 12. Schlüssel-Wert-Paar zu platzieren.

Ist HashMap Get-Thread-sicher?

HashMap ist nicht synchronisiert. Es ist nicht Thread-sicher und kann ohne den richtigen Synchronisationscode nicht von vielen Threads geteilt werden, während Hashtable synchronisiert ist.

Was sich am besten für Multithreading eignetUmgebung?

Antwort ist "ConcurrentHashMap"

Empfohlen:

Interessante Beiträge
Was bedeutet Gothicness?
Weiterlesen

Was bedeutet Gothicness?

Das Adjektiv Gothic beschreibt etwas, das von Mysterium, Schrecken und Düsternis geprägt ist - vor allem in der Literatur. Gothic-Literatur Gothic-Literatur Gothic-Literatur, im 20. Jahrhundert manchmal als Gothic-Horror bezeichnet, ist ein Literatur- und Filmgenre, das Horror, Tod und manchmal auch Romantik abdeckt.

Ist Norfolk-Kiefer eine Zimmerpflanze?
Weiterlesen

Ist Norfolk-Kiefer eine Zimmerpflanze?

Norfolkinsel-Kiefern sind ausgezeichnete Zimmerpflanzen, da sie wenig Licht vertragen und dazu beitragen, die Raumluft von Schadstoffen zu befreien. Wie lange leben Norfolk-Kiefern im Haus? Erkennen des Potenzials von Norfolk Obwohl sie keine echten Kiefern sind, gehören sie zu einer Pflanzenfamilie, die bis in prähistorische Zeiten zurückreicht.

Hat Julian Edelman Cornerback gespielt?
Weiterlesen

Hat Julian Edelman Cornerback gespielt?

Edelman wurde 2009 in der siebten Runde ausgewählt und entwickelte sich zu einem der vielseitigsten Spieler in der Geschichte der NFL. Er kam als College-Quarterback von Kent State zu den Patriots. Er entwickelte sich zu einem Receiver Nr. 1, der Kicks erwiderte, Punts warf, Touchdown-Pässe warf und sogar Cornerback spielte.