Java - 문제 미리보기

문제 2404

medium
다음 코드에서 빈칸에 들어갈 적절한 메서드는?
```java
public class Main extends Thread {
public static int amount = 0;

public static void main(String[] args) {
Main thread = new Main();
thread.start();

// 스레드가 종료될 때까지 대기
while (thread.______()) {
System.out.println("Waiting...");
}

System.out.println("Final amount: " + amount);
}

public void run() {
amount++;
}
}
```
A. `isRunning()`
B. `isActive()`
C. `isAlive()`
D. `isFinished()`

정답: C



`isAlive()` 메서드는 스레드가 아직 실행 중인지 확인하는 Thread 클래스의 메서드입니다.

isAlive() 메서드의 특징:

1. 기능:
⦁ 스레드가 시작되었고 아직 종료되지 않았으면 `true` 반환
⦁ 스레드가 시작되지 않았거나 이미 종료되었으면 `false` 반환

2. 사용 목적:
⦁ 다른 스레드의 작업 완료를 기다릴 때
⦁ 동시성 문제 해결을 위한 간단한 동기화

3. 스레드 생명주기와의 관계:
```java
Thread thread = new MyThread();

// NEW 상태 - 아직 시작 안됨
System.out.println(thread.isAlive()); // false

thread.start();
// RUNNABLE 상태 - 실행 중
System.out.println(thread.isAlive()); // true

// run() 메서드 완료 후
// TERMINATED 상태 - 종료됨
System.out.println(thread.isAlive()); // false
```

💡 학습 팁

이 문제를 포함한 Java 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.