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