반응형
- 멀티스레딩 환경에서 Synchronize를 위한 처리 방법중 한 가지이다.
운영체제의 프로세스와 프로세서를 병렬화 하기 위해 사용되었다고 한다.
- 컴퓨터 과학에서 CAS는 동기화를 달성하기 위해 멀티스레딩에 사용되는 원자적 명령이다.
”비교한 후 바꿔주는 것”
변수는 스레드 내의 스택(캐시)에 저장되고 메모리에 저장된 값과 비교하고 동일한 경우에만 해당 메모리의 위치의 내용을 새로운 주어진 값으로 수정한다.
- Atomic은 최신 정보를 기반으로 새 값이 계산되도록 보장한다.
다른 스레드에 의해 값이 업데이트된 경우 쓰기가 실패한다.
메인 메모리의 값을 가져오기 위해 volatile 키워드 변수를 가져오게 되는데 읽기 연산에서만 사용한다는 단점이 있다.
- Atomic class와 ConcurrentHashMap class에서 사용한다.
반응형
'Delvelopment > Java' 카테고리의 다른 글
[Java] Object 클래스 구성 (0) | 2022.01.23 |
---|---|
[Java] Method Dispatch (Static Dispatch, Dynamic Dispatch, Double Dispatch) (0) | 2022.01.23 |
[Java] System.identityHashCode()와 hashCode() 차이 (0) | 2022.01.21 |
JUnit이란? JUnit5 (Assertion, 어노테이션) (0) | 2022.01.14 |
[JAVA] 산술, 비트, 관계, 논리, 3항, 화살표 연산자, java14 switch 문 (0) | 2022.01.06 |
댓글