[java] 자바에서 스레드 상태를 확인하는 방법은?

스레드는 자바 프로그램에서 동시에 여러 작업을 수행하기 위해 사용됩니다. 스레드가 실행되는 동안, 여러 가지 상태를 가질 수 있습니다. 이러한 상태를 확인하려면 다음과 같은 방법을 사용할 수 있습니다.

  1. getState() 메소드 사용: Thread 클래스에는 getState() 메소드가 있습니다. 이 메소드를 호출하면 스레드의 현재 상태가 반환됩니다. 반환된 상태는 Thread 클래스의 상수로 표현됩니다. 예를 들어, Thread.State.NEW는 스레드가 생성되었지만 아직 실행되지 않은 상태를 의미합니다.

예시 코드:

Thread thread = new Thread();
Thread.State state = thread.getState();
System.out.println("Thread state: " + state);
  1. isAlive() 메소드 사용: Thread 클래스에는 isAlive() 메소드가 있습니다. 이 메소드를 호출하면 스레드가 현재 실행 중인지 여부를 확인할 수 있습니다. 실행 중인 경우 true를, 그렇지 않은 경우 false를 반환합니다.

예시 코드:

Thread thread = new Thread();
boolean isAlive = thread.isAlive();
System.out.println("Thread is alive: " + isAlive);
  1. 스레드 상태 감시: 스레드의 상태를 주기적으로 감시하여 변경된 상태를 확인할 수도 있습니다. 예를 들어, 스레드가 실행 중인지 여부를 확인하기 위해 스레드가 루프를 돌며 실행 중인지 여부를 체크하고 적절한 처리를 수행할 수 있습니다.

예시 코드:

Thread thread = new Thread(() -> {
    // 스레드 실행 내용
});

thread.start();

while (thread.isAlive()) {
    // 실행 중인 스레드를 감시
}

// 스레드 종료 후 처리

위의 방법들을 사용하여 자바에서 스레드의 상태를 확인할 수 있습니다. 각 방법은 다양한 상황에 따라 더 나은 방법일 수 있으니, 상황에 맞게 선택하여 사용하시기 바랍니다.

참고 자료: