比較・交換
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/30 20:34 UTC 版)
多くのシステムでは、アトミックな比較スワップ命令が用意されている。これはメモリーロケーションから値を読み取り、その値とユーザーが指定した「期待値」を比較し、両者が一致した場合に「新しい」値を書き出し、更新が成功したかどうかを返すものである。これを利用してノンアトミックカウンターのアルゴリズムを以下のように修正することができる。 メモリーロケーションの値を読み取る その値に1を加える 比較スワップ機能を使って、増加した値を書き戻す 比較スワップによって読み込まれた値が、最初に読み込んだ値と一致しない場合は再試行する 比較スワップは瞬時に行われる(ように見える)ので、進行中に他のプロセスがその場所を更新した場合、比較スワップは確実に失敗する。
※この「比較・交換」の解説は、「線形化可能性」の解説の一部です。
「比較・交換」を含む「線形化可能性」の記事については、「線形化可能性」の概要を参照ください。
- 比較・交換のページへのリンク