Angenommen, ich habe eine ArrayList<Foo>
. Diese Liste wird sehr häufig geändert. Sogar die Werte der Elemente in der Liste haben Werte, die sich ständig ändern. Alle Änderungen an dieser Liste werden vom Hauptthread ausgeführt.Java Deep Clone Liste von Objekten in separaten Thread atomisch
Wie würde ich gehen Klonen der Liste (tiefe Ebene, Elemente sollten auch geklont werden) in einem separaten Thread in einer Weise, dass es nicht verzögert den Haupt-Thread (oder zumindest nicht viel), und die kopiert Liste enthält eine Momentaufnahme (ich glaube, der Begriff ist atomar) aller Foo-Objekte, deren Werte identisch mit der ursprünglichen Liste sind (wiederum in einem Schnappschuss der Zeit).
Vielen Dank im Voraus. Ich weiß, dass die Lösung mit Synchronisierung zu tun hat, aber ich bin in der Lage, alle oben genannten Kriterien zu erfüllen.
Danke für schnelle Antwort! Obwohl ich nach einem Beispiel suchte, um mich auf den richtigen Weg zu bringen, keine Verbindung zu einem Buch. – olta8
CopyOnWriteArrayList scheint sehr gut zu funktionieren. – olta8
CopyOnWriteArrayList ist sicherlich nützlich, aber denken Sie daran, vorsichtig mit dem Ändern der Elemente selbst (d. H. Die Foos in CopyOnWriteArrayList); es wird dich nicht vor Querfadenproblemen dort retten ... –