글
관련 이론 및 문법
(synchronized 참고)
http://kkikkodev.tistory.com/143
(데드락 (deadlock) 참고)
http://kkikkodev.tistory.com/138
문제 의도
다음 보기 중, 참인 것을 2 개 고르는 문제입니다.
답안
A, D
풀이 방법
먼저, 보기 A 는, static 메소드를 동기화하는 것은 가능하다는 것인데, static 메소드에 동기화를 걸면, 개별 인스턴스가 아닌, 클래스 전체로부터 lock 을 얻게 됩니다. 따라서, 답안 후보가 됩니다.
보기 B 는, 쓰레드가 yield 메소드를 호출하면 lock 을 내려놓는다는 것이고, 보기 C 는 sleep 메소드를 호출하면 lock 을 내려놓는다는 것인데, 쓰레드는 wait 메소드를 호출할 때만, lock 을 내려놓기 때문에, 이는 답안 후보에서 제외합니다.
보기 D 는, Object.wait() 메소드는 오직 동기화된 상태에서만 호출될 수 있다는 것이고, 보기 E 는, Thread.sleep() 메소드는 오직 동기화된 상태에서만 호출될 수 있다는 것인데, 동기화된 상태에서만 호출되어야 하는 메소드는 wait 이기 때문에, D 만 답안 후보가 됩니다.
보기 F 는, 쓰레드 스케줄러가 notify 요청을 받으면, 쓰레드를 1 개 깨우고, 깨워진 쓰레드는 즉시, lock 을 내려놓는다는 것인데, 깨워진 쓰레드가 즉시 lock 을 내려놓는 것이 아니고, notify 요청을 한 현재 쓰레드가 lock 을 내려놓으면, 그 후에 lock 을 가져오게 됩니다. 따라서 답안 후보에서 제외합니다.
결과적으로, 답안은, A 와 D 가 됩니다.
'4.1) OCJP > 1Z0-851 / 2012-08-28' 카테고리의 다른 글
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 18 번 (0) | 2015.08.28 |
---|---|
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 17 번 (0) | 2015.08.28 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 16 번 (0) | 2015.08.28 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 15 번 (0) | 2015.08.27 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 14 번 (0) | 2015.08.27 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 12 번 (0) | 2015.08.23 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 11 번 (2) | 2015.08.21 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 10 번 (0) | 2015.08.19 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 9 번 (0) | 2015.08.19 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 8 번 (0) | 2015.08.14 |
RECENT COMMENT