글
관련 이론 및 문법
(Exception 참고)
http://kkikkodev.tistory.com/173
문제 의도
주어진 소스코드를 컴파일하여 실행한 결과를 고르는 문제입니다.
답안
B
풀이 방법
소스코드를 살펴보면, 1 번 라인에 Threads4 라는 클래스가 정의되어 있고, 2 번 라인에 main 메소드가 있습니다. 또, 5 번 라인에는 go 메소드가 정의되어 있고, 그 안에서는 Runnable 객체를 생성하고, 이를 가지고 Thread 를 생성하여 start 를 2 번 호출하고 있습니다.
프로그램이 실행되어, 3 번 라인에 가면, Threads4 객체의 생성자를 호출하여 객체를 생성한 후 go 메소드를 바로 호출합니다. 6 번 라인에서 Runnable 객체를 생성하여 r 변수로 가리키게 합니다. (run 메소드 오버라이딩 포함) 내부의 run 메소드에서는 "foo" 를 출력합니다. 11 번 라인에서는 위에서 생성한 r 을 가지고 Thread 를 생성하여 t 라는 변수로 가리키게 합니다. 12 번 라인에서는 t.start() 문을 통해 쓰레드를 시작합니다. 그리고, 13 번 라인에서 또, t.start() 문을 통해서 시작된 쓰레드를 또 시작하려고 합니다. 하지만, 이미 12 번 라인에서 시작된 쓰레드는 진행중이어서, 아직 종료처리가 제대로 완료되지 않은 상태이기 때문에, 또 그 쓰레드를 시작을 하려고 하면, 부적합한 쓰레드의 상태가 되기 때문에, IllegalThreadStateException 이 발생하게 됩니다.
따라서 답안은 B 가 됩니다.
'4.1) OCJP > 1Z0-851 / 2012-08-28' 카테고리의 다른 글
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 60 번 (0) | 2015.09.10 |
|---|---|
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 59 번 (0) | 2015.09.10 |
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 58 번 (0) | 2015.09.10 |
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 57 번 (0) | 2015.09.10 |
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 56 번 (0) | 2015.09.10 |
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 54 번 (0) | 2015.09.10 |
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 53 번 (0) | 2015.09.10 |
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 52 번 (2) | 2015.09.10 |
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 51 번 (0) | 2015.09.10 |
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 50 번 (0) | 2015.09.10 |
RECENT COMMENT