同期、不揮発性メモリは、視認性の問題の共有変数の値を解決しますが、前者は排他ロックである、唯一つのスレッドは、get()メソッドを呼び出しながら、スレッドコンテキストスイッチングおよびスレッドの再スケジュールが存在しますが、他の呼び出し元のスレッドは、ブロックされますされていますオーバーヘッドは、これはローカルロックモードの活用ではありません。後者は非ブロッキングアルゴリズムがあるが、それは、スレッドコンテキストスイッチのオーバーヘッドを生じさせないであろう。
揮発性、視認性の保証はなく、アトミック操作を保証するものではありませんを提供しながら。
場合は、一般的に揮発性のキーワード、それを使うのだろうか?
- 書き込みは、変数、変数の現在の値の値に依存しません。現在依存値場合、書き込み動作の三段階の計算を得ることであるので、操作の3つのステップが、揮発性原子ではなく、アトミック性を保証するものではありません。
- 変数の値を読んでロックされていません。ロック自体はメモリの視認性を確保する必要があるため、この時間は、揮発性として変数を宣言する必要はありません。