Synchronized1 [Java] Java volatile? * Java volatile? - volatile 변수는 변수의 값을 읽어올때 CPU Cache에서 읽어오는 것이 아니라, Main Memory에서 읽어오게 된다. - write 할때마다 변수의 값을 Main Memory에 저장한다. * 어떨때 쓸까? - Multi Thread 환경에서 Thread가 변수값을 읽어올때 각각의 CPU cache값이 다르기 때문에 변수 값이 불일치하는 문제가 발생한다. - Thread 1에서 int counter 값을 0에서 계속 증가시키고 있다고 치면, 아직 CPU cache에만 값이 저장되고 있기 때문에 Thread 2에서 counter을 읽어들이면 0을 가져오게 된다. * 언제 쓸까? - 하나의 Thread에서만 값을 read & write하고 나머지 Thread는 r.. 2020. 11. 10. 이전 1 다음