命令並べ替え問題は、volatileキーワードの使用によって引き起こされるとの問題を解決します

まず、以下のコードを見て:

次のように指示し、最適化されたコードを並べ替えた後:
(!STOP)をIF
ながら、(真の){}
揮発性最適スレッドが書き込みであり、他のスレッドの機会を読み取り、複数のスレッドが存在する場合、同時に書き込み動作、依然としてロックの使用を必要とする、または代わりに、スレッドセーフなコンテナまたはアトミック変数。

変数がvolatile宣言されている場合、それは、次の2つの特徴を持っています。
・スレッドの可視性:スレッドの修正は、平均変数は、これを行うことはできませんがかどうかに関係なく、ロックの、他のスレッドはすぐに、最新の変更内容を見ることができ、揮発性の変数を変更しました。
最適化を並べ替え禁止命令は、一般的な変数は、すべての場所は、メソッドの実装では正しい結果を得ることができることを保証するために、割り当ての結果にのみ依存するが、順序は、変数のプログラムコードの割り当ての一貫した実行を保証することはできません。

おすすめ

転載: www.cnblogs.com/htkj/p/10932558.html