본문 바로가기

JAVA

JAVA(2022.06.04) - 쓰레드와 상태제어

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