ホームページ >Java >&#&チュートリアル >アトミック、揮発性、または同期: スレッドの安全性を保証するのはどれですか?
同期なし:
AtomicInteger:
Volatile:
コード 1: 前後のインクリメント操作がアトミックではないため、スレッドセーフではありません。
コード 2: AtomicInteger は CAS を使用してアトミックであることを保証するため、スレッドセーフですincrement.
コード 3: volatile は可視性を確保するだけで競合状態は防止しないため、スレッドセーフではありません。
なしでは揮発性同期:
複数の独立した同期ブロック:
マルチスレッド環境では、それぞれスレッドは変数の独自のローカル コピーを維持します。これは、メモリ競合を減らしてパフォーマンスを向上させるために発生します。ただし、ローカル コピーがメイン メモリまたは他のスレッドのローカル コピーと同期していないと、不整合が発生する可能性があります。
以上がアトミック、揮発性、または同期: スレッドの安全性を保証するのはどれですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。