관련 이론 및 문법

(synchronized 참고)

http://kkikkodev.tistory.com/143


문제 의도

주어진 보기 중에서 컴파일되고, 예외 발생 없이 실행되는 정상적인 코드를 3 개 고르는 문제입니다.


답안

C, E, F


풀이 방법

이 문제는 synchronized 를 사용하는 방법에 대한 문제입니다. synchronized 는 메소드에 붙여서 사용할 수도 있고, 메소드 내에 중괄호 구역에 붙여서 사용할 수도 있습니다. 따라서, 변수에 붙여서 사용한 보기 A 는 답안 후보에서 제외합니다.


메소드에 사용할 때는, 메소드명의 좌측에 synchronized 를 붙여야 하므로, B 와 D 또한 답안 후보에서 제외합니다.


보기 C 는 메소드의 좌측에 정상적으로 synchronized 를 붙였기 때문에 답안 후보가 됩니다.


메소드 내의 중괄호 구역에 synchronized 를 붙이는 방법은 아래와 같이, 인스턴스 변수 혹은 클래스 타입을 넘기는 두 가지 방법이 존재합니다.


public void method(){

synchronized(인스턴스 변수 혹은 클래스 타입){


}

}


보기 E 는 synchronized 구역에 클래스 타입을 넘긴 경우이고, 보기 F 는 synchronized 구역에 인스턴스 변수를 넘긴 경우이므로, 둘 다 답안 후보가 됩니다.


따라서, 답안은 C, E, F 가 됩니다.


by kkikkodev 2015. 8. 27. 15:31