JAVA
JAVA(2022.06.04) - 쓰레드와 상태제어
IT_LEE
2022. 6. 4. 21:58
- 쓰레드를 실행하면 Runnable상태와 Running 상태가 된다
- 실행되는 쓰레드에서 sleep(), wait() 를 만나게 되면 쓰레드는 Blocked 상태가 된다
- sleep() 메서드는 특정시간이 지나면 Blocked 상태를 스스로 빠져나와 Runnable이나 Running 상태가 된다
- wait() 메서드는 notify()나 notifyAll() 메서드를 호출하기 전에 Blocked 상태에서 해제되지 않는다
- notify() notifyAll() 메서드는 wait()메서드로 일시 정지 된 쓰레드를 Runnable상태로 만든다
- wait() 메서드는 호출되면 MonitoringLock이 해제되므로 대기 중인것이 실행된다
- 쓰레드의 run() 메서드가 종료되면 Dead 상태가 된다
- yield() 메서드는 다른 쓰레드에게 자원을 양보하여 다른 쓰레드가 먼저 실행될 수 있도록 한다
- join() 메서드는 해당 쓰레드가 종료될 때까지 대기하게 된다