ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 쓰레드의 상태와 실행제어
    공부/Java 2024. 5. 9. 16:54

    쓰레드의 상태와 실행제어

     

    쓰레드의 상태

    상태 설명
    NEW 쓰레드가 생성되고 아직 start()가 호출되지 않은 상태
    RUNNABLE 실행 중 또는 실행 가능한 상태
    BLOCKED 동기화블럭에 의해서 일시정지된 상태(lock이 풀릴 때까지 기다리는 상태)
    WAITING,
    TIMED_WAITING
    쓰레드의 작업이 종료되지는 않았지만 실행가능하지 않은(unrunnable) 일시정지상태.
    TIMED_WAITING은 일시정지시간이 지정된 경우를 의미
    TERMINATED 쓰레드의 작업이 종료된 상태

     

     

    쓰레드의 실행제어

    - 쓰레드의 실행을 제어할 수 있는 메서드가 제공된다.

    메서드 설명
    static void sleep(long millis)
    static void sleep(long millis, int nanos)
    지정된 시간(천분의 일초 단위)동안 쓰레드를 일시정지시킨다. 지정된 시간이 지나고 나면, 자동적으로 다시 실행 대기상태가 된다.
    void join()
    void join(long millis)
    void join(long millis, int nanos)
    지정된 시간동안 쓰레드가 실행되도록 한다. 지정된 시간이 지나거나 작업이 종료되면 join()을 호출한 쓰레드로 다시 돌아와 실행을 계속한다.
    void interrupt() sleep()이나 join()에 의해 일시정지상태인 쓰레드를 깨워서 실행 대기상태로 만든다. 해당 쓰레드에서는 Interrupted Exception이 발생함으로써 일시정지 상태를 벗어나게 된다.
    void stop() 쓰레드를 즉시 종료시킨다.
    void suspend() 쓰레드를 일시정지시킨다. resume()을 호출하면 다시 실행대기상태가 된다.
    void resume() suspend()에 의해 일시정지상태에 있는 쓰레드를 실행대기상태로 만든다.
    static void yield() 실행 중에 자신에게 주어진 실행시간을 다른 쓰레드에게 양보(yield)하고 자신은 실행대기상태가 된다.

    ※ static이 붙은 쓰레드는 자기 자신에게만 호출할 수 있다.

    '공부 > Java' 카테고리의 다른 글

    suspend(), resume(), stop()  (0) 2024.05.12
    sleep(), interrupt()  (0) 2024.05.10
    데몬 쓰레드(daemon thread)  (0) 2024.05.09
    쓰레드 그룹  (0) 2024.05.08
    쓰레드의 우선순위  (0) 2024.05.08
Designed by Tistory.