Java での ArrayList のスレッドセーフ性の確保
問題: Thread オブジェクトの保存に使用される ArrayList (RaceCar) ) レーシング シミュレーションでは、フィニッシャーの正しい順序を維持するためにスレッド セーフティが必要です。 Collections.synchronizedCollection() を使用して ArrayList を同期しようとした最初の試行により、コンパイラ エラーが発生しました。
分析:
Collections.synchronizedCollection() は、非リスト コレクション実装のみを同期できます。具体的に ArrayList を同期するには、Collections.synchronizedList() を使用します。
解決策:
<code class="java">finishingOrder = Collections.synchronizedList(new ArrayList<>(numberOfRaceCars));</code>
このコードは、RaceCar オブジェクトを格納するためのスレッドセーフな ArrayList を正しく作成し、完走者の順位を維持します。
以上がJava でスレッド オブジェクトの ArrayList のスレッド セーフ性を確保するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。