모두CBT

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 스레드에서 그냥 메서드가 실행된다는 점도 함께 기억해 두자.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.