主に Sync、アトミック クラス、ロック クラスが含まれます。volatile もありますが、同期操作は制限されません。
揮発性の
軽量同期により、共有変数の可視性が保証されます。可視性とは、あるスレッドが共有変数を変更すると、別のスレッドが変更された値を読み取ることができることを意味します。コンテキストの切り替えが発生しないため、実行コストは同期よりも低くなります。、
同期済み
ベテラン級のロック。
Java のすべてのオブジェクトはロックとして使用できます。
- 通常の同期メソッドの場合、ロックは現在のインスタンスです。
- 静的同期メソッドの場合、ロックはクラスのクラス オブジェクトです。
- 同期されたメソッド ブロックの場合、キーワード括弧内のコードはロックされます。
ロックのアップグレード
1.6 以降、ロックの消費を減らすために、ロックフリー、バイアスされたロック、軽量ロック、および重量ロックのアップグレード プロセスが導入されました。アップグレードはできますが、ダウングレードはできません。
アトミック操作
アトミックとは本来「これ以上分割できない最小の粒子」を意味し、アトミック操作は「中断できない1つまたは一連の操作」を意味します。
アトミック操作は、バス ロックとキャッシュ ロックを通じて実装されます。
Java では、アトミック操作を実装するために CAS が使用されます。