揮発性は可視性と発注の問題を解消します。 atomic toolkitは、操作のアトミック性を提供します。 揮発性はhappens-beforeリレーションを使用し、アトミックは比較とスワップを使用します。揮発性とJavaのアトミック、なぜアトミックツールキットが必要ですか
なぜ揮発性のキーワード自体を強化するのではなく、アトミックツールキットのような抽象化の新しいレイヤーを導入する必要があるのはなぜですか?アトミックツールキットで解決できる具体的なケースはありますか?
揮発性は可視性と発注の問題を解消します。 atomic toolkitは、操作のアトミック性を提供します。 揮発性はhappens-beforeリレーションを使用し、アトミックは比較とスワップを使用します。揮発性とJavaのアトミック、なぜアトミックツールキットが必要ですか
なぜ揮発性のキーワード自体を強化するのではなく、アトミックツールキットのような抽象化の新しいレイヤーを導入する必要があるのはなぜですか?アトミックツールキットで解決できる具体的なケースはありますか?
実際にAtomic*
implemetationsを詳しく調べると、すべてがvolatile
値のフィールドを保持していることがわかります。
私見のアトミック既に原子CAS
操作を実行するための便利な方法を提供する揮発性メカニズムの拡張です。
もCAS
実装を隠すことの利点があります。たとえば、ホットスポットjvmでは、イントリンシックを頻繁に使用してパフォーマンスを絞り込みます。既存の言語がvolatile
のように構築変更
は、最も可能性の高い既存のアプリケーションを破壊することを意味します。だから、これは特にないJava言語のために、通常はオプションではありません。新しいライブラリを作成しても既存のアプリケーションには影響がないため、完全に下位互換性があります。
さらに、atomic
パッケージのクラスはcompareAndSet
のような高度な操作を提供し、volatile
キーワードに追加するだけでは使用できません。
原子はキーワードではありません。 – hexafraction