2016-08-10 14 views
1

揮発性は可視性と発注の問題を解消します。 atomic toolkitは、操作のアトミック性を提供します。 揮発性はhappens-beforeリレーションを使用し、アトミックは比較とスワップを使用します。揮発性とJavaのアトミック、なぜアトミックツールキットが必要ですか

なぜ揮発性のキーワード自体を強化するのではなく、アトミックツールキットのような抽象化の新しいレイヤーを導入する必要があるのはなぜですか?アトミックツールキットで解決できる具体的なケースはありますか?

+1

原子はキーワードではありません。 – hexafraction

答えて

2

実際にAtomic*implemetationsを詳しく調べると、すべてがvolatile値のフィールドを保持していることがわかります。

私見のアトミック既に原子CAS操作を実行するための便利な方法を提供する揮発性メカニズムの拡張です。

CAS実装を隠すことの利点があります。たとえば、ホットスポットjvmでは、イントリンシックを頻繁に使用してパフォーマンスを絞り込みます。既存の言語がvolatileのように構築変更

0

は、最も可能性の高い既存のアプリケーションを破壊することを意味します。だから、これは特にないJava言語のために、通常はオプションではありません。新しいライブラリを作成しても既存のアプリケーションには影響がないため、完全に下位互換性があります。

さらに、atomicパッケージのクラスはcompareAndSetのような高度な操作を提供し、volatileキーワードに追加するだけでは使用できません。

関連する問題