やあみんな、
私はこれらのいわゆるノンブロッキングテクニックを読んでいますが、疑問はほとんどありません:
1)ロックフリー操作はアトミック操作を使用して実行されますが、これらのアトミック操作とは何ですか?つまり、特定のレベルでは、ロック権も必要ですか? それで、このロックフリーのアプローチは、より細かい粒度でのみロックを提供しますか?
2) 彼らはノンブロッキング リストと言っています。ノンブロッキング リストとはどうあるべきか : 複数のスレッドが同じ挿入で来る場合、1 つだけが成功し、別のスレッドは他の作業を正しく行いますか?他のスレッドには、ノードを挿入する以外に選択肢がないのに、どうしてノンブロッキングなのですか? 前のものが完了するまでブロックされませんか??
3) Java では、どのようにアトミック操作を行うのですか? 彼らは次のようなことをしませんか synchronized boolean .....
彼らはロックを取得しているので、ロックフリー、つまり同期セクションはどうですか?4) CAS は通常、アトミック操作の実装に使用されます。cas は、同じオブジェクトに対して 1 つの操作のみを許可し、同じオブジェクトに対して他の操作を停止 (ブロック) するのではないでしょうか? 疑問が多くて申し訳ありません...明確にしてください...
編集
更新する構造があるとどうなりますか? ハードウェアでもサポートされていますか? そうではありません。言語は、これらの構造操作をアトミックにするために、あるレベルでロックを取得しているのではないでしょうか? JAVA
について:オブジェクト(構造またはあらゆる種類のオブジェクト)の更新を提供するAtomicReferenceおよびAtomicReferenceFieldUpdaterクラスがあるため、パフォーマンス、つまり速度の観点からそれらを比較できますか?両方の in tern は、Native クラスを使用する Unsafe クラスを使用します。