目次:
定義-アトミックとはどういう意味ですか?
Atomicは、変数java.util.concurrent.atomicパッケージクラスのツールキットであり、Java言語を使用したロックおよび待機フリーアルゴリズムの作成を支援します。 一定の進行のために部分的なスレッドのみを必要とするアルゴリズムはロックフリーです。 待機時間のないアルゴリズムでは、スレッドの障害や遅延の場合でも、すべてのスレッドが継続的に進行します。 ロックおよび待機のないアルゴリズムは、ノンブロッキングアルゴリズムとも呼ばれます。 ノンブロッキングアルゴリズムは、オペレーティングシステムおよびJava仮想マシンレベルでのプロセスおよびスレッドのスケジューリングに使用されます。
TechopediaはAtomicについて説明します
すべてのjava.util.concurrent.atomicパッケージクラスには、名前に「atomic」プレフィックスが付いています。 java.util.concurrent.atomicパッケージには、以下を含むさまざまなタイプのアトミック変数があります。
- AtomicBoolean
- AtomicInteger
- AtomicIntegerArray
- AtomicIntegerFieldUpdater
- アトミックロング
- AtomicLongArray
- AtomicLongFieldUpdater
- アトミックリファレンス
例は、スレッドAがロックを保持するシナリオです。 Aは、このロックによって保護されている変数にのみアクセスして変更を加えることができます。 スレッドBがAの後にこのロックを保持している場合、Bのみがその特定のロックによって保護されている変数のAの変更を表示できます。 ロックに関する主な問題は、BがAが保持しているロックを取得しようとするときに発生します。この場合、ロックが使用可能になるまで待機するためにBがブロックされます。 ノンブロッキングアルゴリズムはこの問題を解決します。
アトミッククラスの構築の主な目的は、ノンブロッキングデータ構造とそれに関連するインフラストラクチャクラスを実装することです。 アトミッククラスは、java.lang.Integerおよび関連クラスの代替として機能しません。 ほとんどのjava.util.concurrentパッケージクラスは、直接または間接的に、同期ではなくアトミック変数を使用します。 アトミック変数はまた、より高いスループットを達成するために使用されます。これは、より高いアプリケーションサーバーのパフォーマンスを意味します。
