22-1아래 Java 프로그램이 스레드를 만들어 실행한 뒤 "A1 go… | 2022년 정보처리기사실기 1회차 기출문제 상세 페이지
1
22-1
아래 Java 프로그램이 스레드를 만들어 실행한 뒤 "A1 go"와 "done"을 차례로 출력하도록, 밑줄 친 빈칸에 들어갈 코드를 적으시오.
class Ticker implements Runnable {
private final String tag;
Ticker(String tag) {
this.tag = tag;
}
public void run() {
System.out.println(tag + " go");
}
}
public class Main {
public static void main(String[] args) throws InterruptedException {
Thread worker = new Thread(new ________("A1"));
worker.start();
worker.join();
System.out.println("done");
}
}해설
Ticker
[해설]
Thread 생성자에는 run()을 구현한 Runnable 객체를 넘겨야 한다. 이 코드에서 Runnable을 구현한 클래스는 Ticker뿐이다.
start()를 호출하면 새 스레드에서 run()이 실행되어 "A1 go"가 찍힌다. join()은 그 스레드가 끝날 때까지 main을 기다리게 하므로 "done"은 항상 뒤에 나온다.
start() 대신 run()을 직접 부르면 새 스레드 없이 main 스레드에서 그냥 메서드가 실행된다는 점도 함께 기억해 두자.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.