
스레드의 생명주기는 다음과 같습니다.
1. 스레드 생성: 스레드 생성자는 스레드의 초기화를 담당합니다. 스레드 생성자는 스레드의 상태를 "NEW"로 초기화합니다.
2. 스레드 실행: 스레드 실행은 스레드가 실행을 시작할 때 호출되는 메서드입니다. 스레드 실행은 스레드의 상태를 "RUNNABLE"로 변경합니다.
3. 스레드 종료: 스레드 종료는 스레드가 종료될 때 호출되는 메서드입니다. 스레드 종료는 스레드의 상태를 "TERMINATED"로 변경합니다.
스레드의 상태(state)는 다음과 같습니다.
1. NEW: 스레드가 생성된 상태입니다.
2. RUNNABLE: 스레드가 실행 중인 상태입니다.
3. BLOCKED: 스레드가 대기 중인 상태입니다.
4. WAITING: 스레드가 대기 중인 상태입니다.
5. TIMED_WAITING: 스레드가 일정 시간 동안 대기 중인 상태입니다.
6. TERMINATED: 스레드가 종료된 상태입니다.
스레드가 대기(wait) 상태가 되게 하는 방법은 다음과 같습니다.
1. Object.wait(): 스레드가 대기 중인 객체의 wait() 메서드를 호출합니다.
2. Thread.sleep(): 스레드가 일정 시간 동안 대기합니다.
3. Lock.lockInterruptibly(): 스레드가 대기 중인 객체의 lockInterruptibly() 메서드를 호출합니다.
4. Condition.await(): 스레드가 대기 중인 객체의 Condition.await() 메서드를 호출합니다.
스레드가 대기(wait) 상태가 되게 하는 예제는 다음과 같습니다.
#hostingforum.kr
java
public class ThreadExample {
public static void main(String[] args) throws InterruptedException {
Thread thread = new Thread(() -> {
try {
Thread.sleep(1000); // 스레드가 1초 동안 대기합니다.
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
});
thread.start();
thread.join(); // 메인 스레드가 대기합니다.
}
}
이 예제에서는 스레드가 1초 동안 대기하고, 메인 스레드가 대기합니다.
2025-04-15 03:16