본문 바로가기
Delvelopment/Java

[java] Compare-And-Swap(CAS) 알고리즘 이란?

by 제제킴 2022. 2. 20.
반응형

 

 

  • 멀티스레딩 환경에서 Synchronize를 위한 처리 방법중 한 가지이다.
    운영체제의 프로세스와 프로세서를 병렬화 하기 위해 사용되었다고 한다.

 

  • 컴퓨터 과학에서 CAS는 동기화를 달성하기 위해 멀티스레딩에 사용되는 원자적 명령이다.
    ”비교한 후 바꿔주는 것”
    변수는 스레드 내의 스택(캐시)에 저장되고 메모리에 저장된 값과 비교하고 동일한 경우에만 해당 메모리의 위치의 내용을 새로운 주어진 값으로 수정한다.

 

  • Atomic은 최신 정보를 기반으로 새 값이 계산되도록 보장한다.
    다른 스레드에 의해 값이 업데이트된 경우 쓰기가 실패한다.
    메인 메모리의 값을 가져오기 위해 volatile 키워드 변수를 가져오게 되는데 읽기 연산에서만 사용한다는 단점이 있다.

 

  • Atomic class와 ConcurrentHashMap class에서 사용한다.

 

반응형

댓글