為了緩解競爭條件並確保程式碼中的線程安全,請考慮使用Collections.synchronizedList() 方法。此方法透過同步存取包裝現有的 ArrayList,輕鬆保護其操作。
以下是將其合併到現有程式碼中的方法:
<code class="java">public class Race implements RaceListener { private Thread[] racers; // Use Collections.synchronizedList() to make the ArrayList thread-safe private List<RaceCar> finishingOrder = Collections.synchronizedList(new ArrayList<>(numberOfRaceCars)); // ... Remaining code ... }</code>
利用 Collections.synchronizedList(),您的 ArrayList 、finishingOrder 完全受到並發存取的保護。它確保當多個執行緒競爭存取時,新增或刪除元素等操作不會導致不可預測的行為或資料損壞。
以上是如何使用 Collections.synchronizedList() 在 Java 中讓 ArrayList 執行緒安全?的詳細內容。更多資訊請關注PHP中文網其他相關文章!