同時プログラミングの AtomicInteger
AtomicInteger は、基礎となる整数値への同時アクセスを可能にする Java クラスです。マルチスレッド環境での同時実行性を最適化するには、AtomicInteger の実際のアプリケーションを理解することが重要です。
典型的な使用例
AtomicInteger は、次の 2 つの主な目的を果たします:
比較と交換の例
Brian Göetz の「Java Concurrency In Practice」では、ノンブロッキング乱数生成に AtomicInteger を使用する例を示しています。
public class AtomicPseudoRandom extends PseudoRandom { private AtomicInteger seed; ... public int nextInt(int n) { while (true) { int s = seed.get(); int nextSeed = calculateNext(s); if (seed.compareAndSet(s, nextSeed)) { ... } } } }
この例では、シード値はコンペアアンドスワップを使用してアトミックに更新されます。次のシードを取得するための計算はブロックせずに実行され、複数のスレッドが同時に乱数を生成できるようにします。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3