현재 terminal node를 A라고하고, 새로 추가해야되는 노드를 B, C라고 하면
A를 복사하고, 복사한 A에 B를 연결하고 A와 복사한 A를 cas한다고 하면
이 중간에 C가 추가될 때 A-C가 연결되면
B는 소실되고 A-C만 남잖아
어캐 구현하는거지
ㅇㅅㅇ
현재 terminal node를 A라고하고, 새로 추가해야되는 노드를 B, C라고 하면
A를 복사하고, 복사한 A에 B를 연결하고 A와 복사한 A를 cas한다고 하면
이 중간에 C가 추가될 때 A-C가 연결되면
B는 소실되고 A-C만 남잖아
어캐 구현하는거지
ㅇㅅㅇ
CAS 한 번으로는 안되고 두 번 해야 enqueue가 구현됩니다.
https://popcorntree.tistory.com/37
참고