私はインタビュー中にこの質問をしました。私はマルチスレッド以外のケースを教えていません。インタビュー:マルチスレッド以外の揮発性キーワードを使用できる場所はありますか?
-3
A
答えて
3
複数のスレッドで何かをしているかどうかに関わらず、変数volatile
を宣言できますが、マルチスレッドの外では実際には役に立ちません。その変数の読み込みと書き込みには大きな利得はありません。
0
と指定されたのJava言語仕様(JLM)のvolatile
の動作は、Java Memory Model(JMM)にあります。 JMMは、あるスレッドが別のスレッドによって実行されたメモリ操作の結果を見ているかどうかをいつでも知ることができるため、単純な「いいえ」がその質問に対する有効な答えとなります。 (私の意見では)
「使える」と「使うべきである」という言葉は、英語の意味が異なることを除いて。したがって、フィールドの宣言には、を「使用できる」ことを指摘しているかもしれませんが、そこではスレッドを1つしか使用しないことがあります。あなたはそれを行うことができます。それは許されています...しかしそれは無意味です。
注意すべき他の事はvolatile
が異なるコード・シーケンスを発するようにネイティブコードコンパイラを引き起こすことがあります。これらのコードシーケンスによって、JLS/JMMが範囲外として扱うコンテキストで、コードが微妙に異なる動作をする可能性があります。例えば、(何らかの形で)オブジェクトフィールドをメモリマップされたハードウェアデバイスレジスタなどにマッピングしている場合は、関連性があります。
ただし、これはJLSで指定されているJava言語の範囲外です。そして、絶対に持ち運びできない。通常のJavaプログラム/プログラマーとは無関係です。
関連する問題
- 1. シングルトンが揮発性である場合
- 2. std :: atomicは揮発性であるべきですか?
- 3. 揮発性のconst、揮発性レジスタ、C++での揮発性の静的
- 4. グローバル、システム、ローカル以外のgit config設定用の場所はありますか?
- 5. は、揮発性
- 6. 揮発性修飾語はいつ使用しますか?
- 7. は揮発性の変数ですか?
- 8. 未使用の揮発性変数
- 9. awaitキーワードを使用する場所 - C#
- 10. ReactJSでJSX以外の構文を使用する場所
- 11. 揮発性コピーコンストラクタとは何ですか?
- 12. Visual C++:明白なケースでは、非揮発性化はありませんか?
- 13. なぜAndroid用のlockStaticは揮発性ですか?
- 14. 揮発性変数
- 15. スカラ:不揮発性
- 16. 揮発性同等
- 17. 揮発性EquivalenceClassにはsortref
- 18. C#で揮発性とThread.MemoryBarrier
- 19. この種の使い方で揮発性の良いものはありますか?
- 20. Yeoman/Yo以外のAngularJS足場/発電機はありますか?
- 21. C++では、揮発性のshared_ptrとnullptrを比較できますか?
- 22. 同期アクセスのみの場合、揮発性が必要です
- 23. 揮発性変数に書き込んだ後はどうなりますか?
- 24. 静的な揮発性キーワードが期待どおりに機能しない
- 25. 揮発性変数を使用しない同期の壊れた場合
- 26. 揮発性の変数をキャストする
- 27. は、Scalaでは、不揮発性上限
- 28. 揮発性のconstポインタ
- 29. C#の非揮発性オブジェクト
- 30. C++の揮発性クラスメンバー
......いいえ....... – shmosel
http://docs.oracle.com/javase/tutorial/essential/concurrency/atomic.html – Paul
多分おもしろい質問のように聞こえる –