Synchronized
-
스레드 자원의 동기화 (키워드 synchronized)JAVA/Thread 2020. 10. 12. 17:59
우선 앞에서 스레드는 시 분할 방식이라고 하였다. 예제1 프로그램 실행결과 소스 파일 예제2 위의 소스를 계속 실행해서 프로그램 결과는 세 종류로 나뉜다. case1 case2 case3 소스 파일 위의 소스에서 Sleep함수의 주석을 제거해보자. 주석을 제거한 부분은 아래의 클래스이다. 프로그램 실행결과 일반적인 경우라면 USER1에서 100의 값이 출력되어야 하는데, 200이 출력 되는 이유는 Sleep함수 때문이다. User1 쓰레드가 작업을 하려고 할 때 메모리 변수에 100값을 저장하고 나서 바로 2초 간의 지연이 발생하는데, 이 때 User2쓰레드가 시작 되어 메모리 변수에 200값을 저장하고 나서 이 User2 쓰레드도 2초 간의 지연이 발생한다. 이 때 메모리 변수에는 200값이 저장되어 ..