728x90
간단하게 말하면 중단이 불가능한 연산을 의미한다. 문제는 이를 얼마나 이해하는 것인데 자신이 작성한 코드가 원자적 연산이 아닐 수도 있다는 사실을 알아야 한다.
01: public class Example {
02: int lastId;
03: public void resetId() {
04:
lastId
=0;
05: }
06: public int getNextId() {
07: ++
lastId
;
08: }
4번째 줄은 단순히 0을 lastId에 할당하므로 원자적 연산이다. 그러나 lastId 타입을 long으로 바꾸면 원자적 연산이 아닐 수 있다. 64비트 명령을 지원하기 위해서 JVM은 long을 32비트 명령어 두개로 처리한다. 7번째 줄 역시 원자적 연산이 아니다. ISA를 다 이해할 필요는 없지만 위의 내용 정도는 알아 두는 것이 정신 건강에 좋다.
728x90
'용어' 카테고리의 다른 글
용어 - 메모리 단편화(Fragmentation) (0) | 2016.03.21 |
---|---|
용어 - Dead Reckoning (추측 항법) (0) | 2016.03.07 |
용어 - ECEF(Earth-Centered Earth-Fixed Frame) Coordinate (0) | 2016.03.07 |
용어 - UTM(Universal Transverse Mercator Grid) Coordinate (0) | 2016.03.07 |
용어 - LLA(Lat, Lon, Alt) Coordinate (0) | 2016.03.07 |