Ich habe Thread A Aufrechterhaltung einer Datenstruktur (Hinzufügen, Löschen, Ändern von Werten in einem ConcurrentHashMap).Hat ein neuer Thread die volle Speichersichtbarkeit der vorherigen Aktionen aller anderen Threads für gemeinsam genutzte Objekte?
Ich habe Gewinde B auf einem Socket hören und gelegentlich Gewinde C Schaffung eine neue Client-Verbindung zu behandeln.
Alle Gewinde C s nur jemals von der ConcurrentHashMap gehalten by thread A (nie aktualisieren) gelesen.
Ist Gewinde C garantiert alle Updates zu sehen, die by thread A, auf dem ConcurrentHashMap, vor dem Faden C wurde erstellt/started by thread B durchgeführt wurden?
(Edited letzte Satz Frage klarer zu machen. Nur um Aktualisierungen der ConcurrentHashMap)
Ja, vorbehaltlich der Vorkehrungen vor dem Java Memory Model * (q.v.) *. Grundsätzlich müssen Sie sicherstellen, dass jeder Zugriff "synchronisiert" oder der "java.util.concurrent" entspricht. – EJP