Ich suche nicht nach Unterschieden zwischen verschiedenen Datenstrukturen wie HashMap
, Collections.synchronizedMap(Map)
oder HashTable
. SO ist voller solcher Beiträge.Praktische Anwendungsfälle für ConcurrentHashMap
Ich weiß auch, dass ConcurrentHashMap nicht ConcurrentModificationException
für Reader-Thread werfen wird, wenn ein anderer Autor Thread die Karte ändert.
Was ich über praktische Szenarien suchen, wenn ein Leser Thread leisten kann, an veraltete Daten zu arbeiten?
d. H., Thread-1 bekommt zum Zeitpunkt T1 in einem Thread eine Iterator
, dann wird zu einem späteren Zeitpunkt T2 ein Element eingefügt, um durch einen anderen Thread-Thread-2 abgebildet zu werden. ConcurrentHashMap
sagt, dass Thread-1 nicht garantiert ist, aktualisierte Daten zu sehen, also denke ich, dass es über veraltete Daten iteriert.
Kann mir jemand auf konkrete Probleme hinweisen, wo dies als in Ordnung betrachtet werden könnte? wie bei der Implementierung von Cache, Multi-Thread-Web-Services usw. oder Probleme aus eigener praktischer Erfahrung?
Alle Probleme, die ich vorfand, erforderten immer eine aktualisierte Ansicht der Daten, da das der Zweck war, Daten in eine Karte einzufügen, damit Leser an aktualisierten Daten arbeiten können. Was waren die Probleme, bei denen eine synchronisierte Karte nicht passte? ?
In der Theorie sieht alles gut aus, aber meine Neugier entstand, da ich nie ein solches Szenario in meiner täglichen Arbeit vorfand, wo Leser es sich leisten konnten, auf schalem Blick zu arbeiten.
warum down votes? wegen langer aufschreiben? nur nach unten stimmen und keine Antworten? Meine Frage ergab sich aus der allgemeinen Wahrnehmung, dass "HashMap" durch "ConcurrentHashMap" in einer Multi-Thread-Umgebung ersetzt werden kann, während sie in Wirklichkeit ganz unterschiedliche Anwendungsfälle darstellen. Es gibt Probleme, bei denen 'HashMap' nicht durch' ConcurrentHashMap' ersetzt werden kann, auch nicht in Multi-Threaded-Umgebungen, und ich kenne keine Anwendungsfälle für 'ConcurrentHashMap'. –
Down-Stimmen haben manchmal Lawineneffekt. Stattdessen hätte er ihre Intelligenz beweisen können, indem er jemandem, der in Not ist, antwortet. – user104309