compare-and-swap

    Test-and-Set (TAS) 와 Compare-and-Swap (CAS) 차이점 (w/ chatgpt)

    Test-and-Set (TAS) 와 Compare-and-Swap (CAS) 차이점 (w/ chatgpt)

    🔍 1. Compare-and-Swap (CAS)"값이 기대한 값이면 바꾸고, 아니면 바꾸지 마!"동작 방식:bool compare_and_swap(int* addr, int expected, int new_val) { if (*addr == expected) { *addr = new_val; return true; } return false;}addr == expected → true면 new_val로 바꿈아니면 아무 것도 하지 않음원자적으로 실행됨 (CPU instruction or atomic primitive)🧠 사용 예:lock-free 자료구조 (스택, 큐)atomic compare → 실패하면 retry loop예: std::atomic::comp..