Thread Status

Programming/Java 2006. 10. 31. 18:47
Thread Status

스레드를 만들고 시작시키는 것보다 스레드를 제어하는 것이 더 중요하다.
스레드를 제대로 제어하려면 먼저 스레드의 상태부터 알아야 한다.

♣ 스레드의 상태
  • 시작 상태(Start 상태)
    제일 먼저 스레드를 만든 후 start()를 호출했을 때 Start 상태가 된다.
    그리고 바로 Runnable 상태로 진입한다.
  • 동작할 수 있는 상태(Runnable 상태)
    스레드가 실행되면 일반적으로 Runnable 상태가 된다.
    Runnable 상태의 스레드는 여러 개 존재할 수 있다.
    Runnable 상태에 있는 스레드들끼리 번갈아 가면서 Run 상태가 된다.
  • 동작 상태(Run 상태)
    한순간에 단 하나의 스레드만이 Run 상태가 된다.
    Runnable 상태에서 CPU의 제어권을 할당받는 순간 Run 상태가 된다.
    작업을 마치면 Runnable 상태로 돌아와서 다음 순서를 기다린다.
    Run 상태가 될 때 스레드는 작업을 진행할 수 있다.
  • 대기 상태(NotRunnable 상태)
    NotRunnable 상태는 Run 상태로 진입할 수 없지만 Dead 상태는 아닌 대기 상태이다.
    (sleep(), wait(), notify() 메소드들을 사용하여 제어)
  • 종료 상태(Dead 상태)
    모든 작업을 완료하면 Dead 상태가 되고, 스레드는 자동으로 소멸하게 된다.
    run() 메소드의 종료는 스레드의 종료를 의미한다.



WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,