答えて
@Nawazは、すでに指摘したように:
をあなたは揮発性のオブジェクトを持っている場合、あなたは揮発性のコピーctorのを必要としています。ですから、質問はこれに沸きます:いつあなたは揮発性の物体が必要ですか?
主に、volatileキーワードを使用する主な理由は、最適化を無効にするためです。それはあなたがこのような何かを持っている場合です。
bool flag = false;
if(!flag) {}
コンパイラフラグを毎回チェックする必要はありませんので、そのフラグを変更することはできませんが表示されます - それはしません。しかし、フラグ変数をvolatileにすると、それが実行されます。ここで
は、volatileキーワードの元使用の意見です:link要するに
、それはもともとやや珍しいとすることができる、MMIO経由でハードウェアにアクセスするために使用された:
unsigned char* pControl = 0xff24 ;
*pControl = 0 ;
*pControl = 0 ;
*pControl = 0 ;
そして、あなたはしないでください最適化のためにそれらの3つの割り当てを1つにしてください。
そして、ここでは揮発性のアンドレイ・アレキの論文は、マルチスレッドのソフトウェアである:link
はアレキの論文を批判し、いくつかの論文がありましたが、私はそれを見つけることができませんでした。彼は揮発性の物などを捨てていたという点がありました。
は、マルチスレッドに非常に重要なことに注意して、@JanHudecが指摘:それは、最適化を防止しながら、それが明示的な障壁を生成しないので、
volatile
は、マルチスレッドコンテキストのために全く役に立ちません。そして、1つのCPU上で行われた書き込みが別のCPUに見えなくなることはありません(アーキテクチャに依存します; x86には一貫性のあるキャッシュがあるため、書き込みは常にそこに表示されます)。
volatile
また、操作をアトミックにすることはありません。 x86の割り当ては常にアトミックですが、すべてのCPUアーキテクチャではそうではありません。増分などのより複雑な操作は、std::atomic
を使用してのみアトミックにすることができます。
意見はありません、有効なパーマリンクを使用してみてください。 – Zeta
@Zeta - ありがとう。 URLがどうにか乱れてしまった。編集されました。 –
'volatile'はマルチスレッドのコンテキストでは全く役に立たないのですが、最適化を妨げる一方、明示的な障壁を生成しないからです。そして、1つのCPU上で行われた書き込みが別のCPUに見えなくなることはありません(アーキテクチャに依存します; x86には一貫性のあるキャッシュがあるため、書き込みは常にそこに表示されます)。 –
- 1. は、揮発性
- 2. 揮発性のconst、揮発性レジスタ、C++での揮発性の静的
- 3. C#で揮発性とThread.MemoryBarrier
- 4. は揮発性の変数ですか?
- 5. 揮発性変数
- 6. スカラ:不揮発性
- 7. 揮発性同等
- 8. 揮発性EquivalenceClassにはsortref
- 9. .Net:揮発性の32ビットと不揮発性の64ビットおよびスレッドの安全性。 64ビットを処理する最善の方法は何ですか?
- 10. は、Scalaでは、不揮発性上限
- 11. Cでこれらの揮発性のポインタの意味は何ですか?
- 12. 揮発性のconstポインタ
- 13. C#の非揮発性オブジェクト
- 14. C++の揮発性クラスメンバー
- 15. ビュー対揮発性テーブル?
- 16. C中の揮発性
- 17. スレッドセーフ(揮発性なし)
- 18. アクセシビリティの揮発性変数
- 19. 揮発性と同期の差
- 20. C#とCの揮発性の違い
- 21. 揮発性オブジェクトが不揮発性メンバ関数を呼び出すことができない理由
- 22. 揮発性とJavaのアトミック、なぜアトミックツールキットが必要ですか
- 23. std :: atomicは揮発性であるべきですか?
- 24. シングルトンが揮発性である場合
- 25. 揮発性変数には同期アクセスが必要ですか?
- 26. なぜAndroid用のlockStaticは揮発性ですか?
- 27. CPUシングルコア:揮発性または同期が必要ですか?
- 28. なぜ揮発性変数は通常非公開ですか?
- 29. Bluemix Virtual Serverのストレージはどれだけ揮発性ですか?
- 30. 揮発性の変数をキャストする
揮発性オブジェクトがある場合は、volatile copy-ctorが必要です。ですから、質問はこれに沸きます:いつあなたは揮発性の物体が必要ですか? – Nawaz