確保Java 中ArrayList 的線程安全
問題: 用於儲存Thread 物件的ArrayList (RaceCar )在賽車模擬中需要線程安全來維持完成者的正確順序。最初嘗試使用 Collections.synchronizedCollection() 同步 ArrayList 導致編譯器錯誤。
分析:
Collections.synchronizedCollection() 只能同步非 List Collection 實作。若要專門同步 ArrayList,請使用 Collections.synchronizedList()。
解決方案:
<code class="java">finishingOrder = Collections.synchronizedList(new ArrayList<>(numberOfRaceCars));</code>
此程式碼正確建立了一個線程安全的 ArrayList 來儲存 RaceCar 物件並維持完賽者的秩序。
以上是如何確保 Java 中線程物件的 ArrayList 的線程安全?的詳細內容。更多資訊請關注PHP中文網其他相關文章!