volatile キーワードは、変数を複数のスレッドにわたって強制的に表示し、命令の再配置の最適化を禁止します。原則は次のとおりです。 可視性: 変更された値はすべてのスレッドに即座に表示され、メモリ バリアを介してメイン メモリにフラッシュされます。並べ替えを無効にする: メモリ バリアにより、コンパイラと CPU が揮発性変数を含むステートメントを並べ替えることができなくなり、プログラムの順序で実行されることが保証されます。
Javaのvolatileキーワードの原理
volatileキーワードとは何ですか?
volatile キーワードは、複数のスレッドにわたって参照できる変数を宣言し、命令の並べ替えの最適化を無効にする Java 言語修飾子です。
volatile キーワードの原則
変数が volatile として宣言されると、次の特性があります:
Visibility
volatile は、変数のメモリ位置にメモリ バリアを挿入することで可視性を確保します。スレッドが揮発性変数の値を変更すると、メモリ バリアによって変更された値がメイン メモリに強制的にフラッシュされます。その後、他のスレッドはメイン メモリから更新された値を取得できます。
並べ替えなし
コンパイラーと CPU は、命令の並べ替えなどのコードの最適化を実行することがよくあります。この最適化により、マルチスレッド プログラムで予期しない動作が発生する可能性があります。 volatile キーワードはメモリ バリアを挿入することでこの最適化を無効にし、揮発性変数を含むステートメントがプログラムの順序で実行されるようにします。
使用シナリオ
volatile キーワードは通常、次のシナリオで使用されます:
以上がJavaの揮発性の原理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。