4.1) OCJP/1Z0-851 / 2012-08-28

OCJP (1Z0-851 / 2012-08-28 / Exam B) - 17 번

kkikkodev 2015. 8. 28. 03:25



관련 이론 및 문법

(데드락 (deadlock) 참고)

http://kkikkodev.tistory.com/138


문제 의도

t1 이 실행중인 쓰레드의 참조 변수로 주어졌을 때 참인 보기를 고르는 문제입니다.


답안

E


풀이 방법

이 문제는, Thread 와 Object 클래스의 메소드들의 원형을 묻는 문제입니다. 


먼저 보기 A 를 보면, Thread.sleep() 메소드는 t1 을 매개변수로 취할 수 있다는 것인데, sleep 메소드는 다음과 같은 원형의 메소드들만 존재하므로, Thread 형의 매개변수를 받는 메소드는 존재하지 않습니다.


public static native void sleep(long millis) throws InterrupedException

public static void sleep(long millis, int nanos) throws InterruptedException


따라서, 보기 A 는 답안에서 제외합니다.


보기 B 를 보면, Object.notify() 메소드는 t1 을 매개변수로 취할 수 있다는 것인데, notify 메소드는 다음과 같은 원형의 메소드만 존재하므로, Thread 형의 매개변수를 받는 메소드는 존재하지 않습니다.


public final native void notify()


따라서, 보기 B 는 답안에서 제외합니다.


보기 C 를 보면, Thread.yield() 메소드는 t1 을 매개변수로 취할 수 있다는 것인데, yield 메소드는 다음과 같은 원형의 메소드만 존재하므로, Thread 형의 매개변수를 받는 메소드는 존재하지 않습니다.


public static native void yield()


따라서, 보기 C 는 답안에서 제외합니다.


보기 D 를 보면, Thread.setPriority() 메소드는 t1 을 매개변수로 취할 수 있다는 것인데, setPriority 메소드는 다음과 같은 원형의 메소드만 존재하므로, Thread 형의 매개변수를 받는 메소드는 존재하지 않습니다.


public final void setPriority(int newPriority)


따라서, 보기 D 는 답안에서 제외합니다.


보기 E 를 보면, Object.notify() 메소드는 깨울 쓰레드를 임의로 선택한다는 것인데, 이는 대기큐에서 깨울 쓰레드를 임의로 선택하기 때문에 정답이 됩니다.


결과적으로, 답안은 보기 E 가 됩니다.