Volatile 썸네일형 리스트형 자바 쓰레드(Thread) - Atomic 예제 동기화를 배울때 synchronized와 volatile을 공부했다. synchronized는 메소드 시그니쳐나 블럭(?)을 지정할때 volatile은 변수에 대한 동기화였다. 아래 예제를 보자. 예제는 백만까지 for루프를 돌면서 합계를 구하는 것이다. 위의 예제를 돌려보면 결과값이 499999500000 나온다(백만의 합계이다) 걸린 시간은 대략 컴퓨터에 따라 다르지만 내 컴퓨터 기준으로는 32ms 다.(내 컴이 꾸리다) 그럼 쓰레드를 두개 생성후 돌리면 어떻게 될까? 499999500000 * 2 = 999999000000 가 나와야 하지 않을까? 근데 아니다. 가끔씩 값이 다르게 나온다.(아래처럼) 이유는 아무리 변수에 대한 volatile처리를 했어도 add메소드에서 동시에 두개가 작업이 들어가.. 더보기 자바 쓰레드(Thread) - Volatile 더보기 이전 1 다음