본문 바로가기
Error(Exception)/ERROR-JAVA

[자바(java)] IllegalThreadStateException

by control+c 2023. 2. 22.
반응형

IllegalThreadStateException 예외

IllegalThreadStateException 예외는 Java의 멀티 스레드 개발 시 생기는 예외입니다. 멀티 스레드는 여러 스레드들이 동시에 실행되는 프로그램을 의미합니다. 따라서 이러한 멀티 스레드 개발 시 여러 가지 예외가 발생할 수 있습니다. IllegalThreadStateException은 그 중 하나입니다.

IllegalThreadStateException 예외의 정의

IllegalThreadStateException 예외는 다음과 같은 상황에서 발생합니다.

  • 멀티 스레드 개발에서 다른 스레드를 실행하려고 하면 발생합니다.
  • 멀티 스레드 개발에서 스레드를 중지하려고 하면 발생합니다.
  • 멀티 스레드 개발에서 스레드가 이미 실행되고 있어서 멈출 수 없는 상황에서 발생합니다.

IllegalThreadStateException 예외 예시

다음은 IllegalThreadStateException 예외를 발생시키는 예시입니다.

public class ThreadTest {
  public static void main(String[] args) {
    Thread t = new Thread();
    t.start();
    t.start(); // IllegalThreadStateException 예외 발생
  }
}

위의 예시에서 볼 수 있듯이, 스레드가 이미 실행되고 있는 상황에서 t.start()를 호출하면 IllegalThreadStateException 예외가 발생합니다.

IllegalThreadStateException 예외 해결 방법

IllegalThreadStateException 예외를 해결하기 위해서는 스레드를 적절히 중지시켜 줘야 합니다. 다음은 스레드를 중지시키는 예시입니다.

public class ThreadTest {
  public static void main(String[] args) {
    Thread t = new Thread();
    t.start();
    t.interrupt(); // 스레드를 중지시킴
  }
}

위의 예시에서 볼 수 있듯이, t.interrupt() 메소드를 호출하면 스레드가 중지됩니다. 이렇게 하면 IllegalThreadStateException 예외를 해결할 수 있습니다.

반응형

'Error(Exception) > ERROR-JAVA' 카테고리의 다른 글

[자바(java)] InstantiationException  (0) 2023.02.24
[자바(java)] IndexOutOfBoundsException  (0) 2023.02.23
[자바(java)]Exception  (0) 2023.02.21
[자바(java)] Error  (0) 2023.02.20
[자바(java)] IllegalStateException  (0) 2023.02.19

댓글