问题:(1)不需要cas操作来加锁和解锁,这个怎么理解??cas操作不是如果比较不成功那么就一直尝试吗?和加锁有什么关系??这个该如何理解
走同样的路,发现不同的人生
プラットフォームによっては、比較および交換操作にロックが必要ない場合がありますが、ほとんどのプラットフォームはロックフリーの CAS をサポートしています。最も単純なロックは、テストとセットによって実装されるスピン ロックです。もちろん、cas によって実装することもできます。
スピンロックはロックが失敗しても試行を続け、CPU リソースを使い果たします。
システム インターフェイスによって提供されるロックは、通常、ロックが失敗すると、
ここでのwait_for_unlock_signal()は虚数関数です。しかし、ロックは依然として cas のようなアトミック操作に依存しています。言い換えれば、ロックは、テストと設定、比較と交換などのいくつかの基本的なアトミック操作を通じて実装されるようになりました。
wait_for_unlock_signal()
プラットフォームによっては、比較および交換操作にロックが必要ない場合がありますが、ほとんどのプラットフォームはロックフリーの CAS をサポートしています。最も単純なロックは、テストとセットによって実装されるスピン ロックです。もちろん、cas によって実装することもできます。
スピンロックはロックが失敗しても試行を続け、CPU リソースを使い果たします。
など リーリーシステム インターフェイスによって提供されるロックは、通常、ロックが失敗すると、
と同様にスレッドを一時停止します。 リーリーここでの
wait_for_unlock_signal()
は虚数関数です。しかし、ロックは依然として cas のようなアトミック操作に依存しています。言い換えれば、ロックは、テストと設定、比較と交換などのいくつかの基本的なアトミック操作を通じて実装されるようになりました。