マルチスレッドとミューテックスは初めてなので、初心者向けにウィキペディアを調べていました。私はこの部分に出くわしました:
CAS を使用すると、実行する必要のある操作を各ノードが表すリンク リストを作成することで、共有データ構造の待機なしの相互排除を実現できます。次に、CAS を使用して、新しいノードの挿入中にリンク リスト内のポインターを変更します。その CAS で成功できるプロセスは 1 つだけです。同時にノードを追加しようとする他のすべてのプロセスは、再試行する必要があります。その後、各プロセスはデータ構造のローカル コピーを保持し、リンクされたリストをトラバースすると、そのローカル コピーでリストから各操作を実行できます。
これで、基本的に値を所定の値と比較し、一致する場合はそれらを交換するアトミック操作を使用する CAS の基本概念を理解しました。しかし、ここで「目的の操作のリンクされたリスト」が何を意味するのかを理解できませんでしたか? また、すべてのプロセスが同じ操作のリンク リストに従うのはなぜでしょうか。