
java.lang.Thread의 start() 메서드는 쓰레드가 실행되도록 요청하는 메서드입니다. 이 메서드는 쓰레드의 상태를 NEW에서 RUNNABLE로 변경합니다. NEW 상태는 쓰레드가 생성된 상태이고, RUNNABLE 상태는 쓰레드가 실행 중인 상태입니다.
start() 메서드가 호출된 후 쓰레드가 실행되는 시점은 JVM이 스케줄링하는 시점입니다. JVM은 쓰레드의 우선순위, 쓰레드의 상태, 시스템의 부하 등을 고려하여 쓰레드를 실행합니다.
start() 메서드 호출 후 쓰레드의 상태는 다음과 같이 바뀝니다.
1. NEW 상태에서 RUNNABLE 상태로 변경
2. 쓰레드의 실행을 요청
3. JVM이 스케줄링하여 쓰레드를 실행
다른 쓰레드의 실행을 관리하는 방식은 JVM의 스케줄링 알고리즘에 따라 다릅니다. JVM은 쓰레드의 우선순위, 쓰레드의 상태, 시스템의 부하 등을 고려하여 쓰레드를 실행합니다.
다음은 예제 코드입니다.
#hostingforum.kr
java
public class ThreadTest {
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("쓰레드가 실행 중입니다.");
}
});
System.out.println("쓰레드 상태: " + thread.getState()); // NEW
thread.start();
System.out.println("쓰레드 상태: " + thread.getState()); // RUNNABLE
}
}
이 예제 코드는 쓰레드가 생성된 후 start() 메서드를 호출하여 쓰레드의 상태를 RUNNABLE로 변경합니다. JVM이 스케줄링하여 쓰레드를 실행하면 쓰레드의 실행 중인 메시지가 출력됩니다.
2025-03-25 10:57