volatile : 변수의 앞에 붙이면 cpu의 코어가 변수의 값을 읽어올 때 캐시가 아닌 메모리에서 읽어서 캐시와 메모리간의 값의 불일치가 해결된다. * volatile이 필요한 이유 멀티 코어 프로세서에서는 코어마다 별도의 캐시를 가지고 있는데 코어는 메모리에서 읽어온 값을 캐시에 저장하고 캐시에서 값을 읽어서 작업한다. 다시 같은 값을 읽어올 때에는 먼저 캐시에 있는지 확인하고 없을때만 메모리에서 읽어온다. 그러다가 도중에 메모리에 저장된 변수의 값이 변경되어도 캐시에 저장된 값이 갱신되지 않아서 메모리에 저장된 값이 다른 경우가 발생한다. * volatile의 사용방법 //boolean stopped = false; //volatile volatile boolean stopped = false; ..