Gewährleistung der Thread-Sicherheit einer ArrayList in Java
Problem: Eine ArrayList zum Speichern von Thread-Objekten (RaceCar ) in einer Rennsimulation erfordert Thread-Sicherheit, um die richtige Reihenfolge der Finisher aufrechtzuerhalten. Der erste Versuch, die ArrayList mithilfe von Collections.synchronizedCollection() zu synchronisieren, führte zu einem Compilerfehler.
Analyse:
Collections.synchronizedCollection() kann nur Nicht-List-Collection-Implementierungen synchronisieren. Um speziell eine ArrayList zu synchronisieren, verwenden Sie Collections.synchronizedList().
Lösung:
<code class="java">finishingOrder = Collections.synchronizedList(new ArrayList<>(numberOfRaceCars));</code>
Dieser Code erstellt korrekt eine Thread-sichere ArrayList zum Speichern von RaceCar-Objekten und Halten Sie die Reihenfolge der Finisher ein.
Das obige ist der detaillierte Inhalt vonWie können Sie Thread-Sicherheit für eine ArrayList von Thread-Objekten in Java gewährleisten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!