問題タブ [happens-before]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ConcurrentHashMap は、compute メソッドを介してのみ読み取り/更新します
これは基本的にthisまたはthis、またはその点で他の多くの続きです。
私の質問はおそらく単純です。ある値のリーダーとライターの両方でConcurrentHashMap::compute
のみを使用する場合、それで可視性を確保するのに十分ですか?
私はそのcompute
方法を知っています:
メソッド呼び出し全体がアトミックに実行される
可視性を保証するのに十分ですか?具体的には、その真の仕様/ドキュメントは賢明happens-before
ですか? 私の質問を簡単にするために、ここに例を示します:
と :
誰もアクセスCHM
できず、経由でしか作業できませんHolder
。
私にとって答えは明らかにイエスです。これは安全であり、すべての読者は最新のwrite
方法の結果を見ることができます。ドットと のドキュメントを関連付けることができませんConcurrentHashMap
。これはおそらく明らかですが、見逃しているようです。