ホームページ >Java >&#&チュートリアル >Java の JDK はインデックス付きアクセスを備えた同時リストを提供しますか?
同時コレクション: Java の JDK は同時リストを提供しますか?
マルチスレッド アプリケーションで共有の可変状態を維持するのは困難な場合があります。 Java の同時実行フレームワークはスレッドセーフなコレクションを提供しますが、List インターフェイスの同時実装はありますか?
インデックス付きアクセスを使用して同時リストを作成できますか?
へ同時コンテキストでインデックスによって要素にアクセスするには、インデックス付きアクセスと安全な同時アクセスの両方をサポートするデータ構造が必要です。 Java Development Kit (JDK) によって提供されるオプションを調べてみましょう。
ConcurrentLinkedQueue: 挿入順序を保持する代替手段
インデックス ベースのアクセスが重要でない場合は、挿入順序を保持するコレクションを求める場合は、ConcurrentLinkedQueue クラスを検討してください。要素の追加と取得を同時に行うことができますが、インデックス付きアクセスは犠牲になります。ただし、提供されたコード スニペットに示すように、Iterable が実装されているため、for-each ループを使用してその内容を反復処理できます。
Queue<String> globalQueue = new ConcurrentLinkedQueue<>(); // Multiple threads can safely call globalQueue.add()... for (String href : globalQueue) { // Do something with href }
結論として、JDK は次の同時実装を提供しません。インデックス付きアクセスを備えたリスト ConcurrentLinkedQueue は、インデックス ベースの操作よりも挿入オーダーの保存を優先するアプリケーションに妥協点を提供します。反復可能な性質を利用することで、マルチスレッド環境でもコレクションの要素を安全に効率的に走査して処理できます。
以上がJava の JDK はインデックス付きアクセスを備えた同時リストを提供しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。