[프로그래밍] CAS(Compare-And-Swap)란?
오늘은 Compare And Swap 이라는 개념에 대해서 글을 써보겠습니다. 멀티 쓰레딩에서 필수적인 개념입니다. 멀티스레드 환경에서 데이터를 안전하게 변경하려면 동기화가 필요합니다.하지만 전통적인 락(Lock) 방식은 데드락, 성능 저하 문제를 일으킬 수 있습니다.이때 CAS(Compare-And-Swap)는 락 없이(Non-blocking) 안전하게 값을 변경할 수 있는 핵심 기술입니다. -CAS란?CAS(Compare-And-Swap)는 "기대값과 현재값을 비교해서 같으면 새로운 값으로 바꾼다"라는 원자적 연산입니다.하드웨어가 직접 지원하므로, 스레드 경합이 심한 상황에서도 빠르고 안전하게 동작합니다. CAS 연산은 다음 3개의 인자를 사용합니다.V변경할 메모리 위치(변수)E기대값(Expected..