김영한의 실전 자바 - 고급 1편(CAS)
·
김영한의 실전 자바 - 고급 1편
원자적 연산이란 무엇인가? i++; 은 원자적 연산인가?원자적 연산의 의미는 해당 연신이 더 이상 나눌 수 없는 단위로 수행된다는 것을 의미예를 들어서 i = 1 은 원자적 연산이다.i ++ (i = i + 1 )은 원자적 연산이 아니며 다음과 같이 세 파트로 나눠질 수 있다.오른쪽에 있는 i의 값을 읽는다읽은 i의 값에 1을 더한다.더해진 값을 왼쪽 i에 대입한다. 원자적 연산과 동시성 문제의 상관 관계에 대해 설명하시오원자적 연산일 경우 동시성 문제가 발생하지 않고, 그렇지 않을 경우 동시성 문제가 발생한다. i = i + 1의 경우를 예로 들어보자. (i의 기존 값이 10이라고 가정하자)1. 오른쪽 i의 조회된 값은 10이다.2. 조회된 10에 1을 더한다.3. 그 이후 11을 왼쪽 i에 대입한다...