問題タブ [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.

0 投票する
1 に答える
129 参照

java - ConcurrentHashMap は、compute メソッドを介してのみ読み取り/更新します

これは基本的にthisまたはthis、またはその点で他の多くの続きです。

私の質問はおそらく単純です。ある値のリーダーとライターの両方でConcurrentHashMap::compute のみを使用する場合、それで可視性を確保するのに十分ですか?

私はそのcompute方法を知っています:

メソッド呼び出し全体がアトミックに実行される

可視性を保証するのに十分ですか?具体的には、その真の仕様/ドキュメントは賢明happens-beforeですか? 私の質問を簡単にするために、ここに例を示します:

と :

誰もアクセスCHMできず、経由でしか作業できませんHolder

私にとって答えは明らかにイエスです。これは安全であり、すべての読者は最新のwrite方法の結果を見ることができます。ドットと のドキュメントを関連付けることができませんConcurrentHashMap。これはおそらく明らかですが、見逃しているようです。