JAVA/Thread

Thread의 State

DesignatedRoom 2020. 10. 12. 18:17

프로그램 실행결과

소스 파일

StatePrintThreadTest.java
0.00MB

 

StatePrintThread클래스의 run함수에서 targetThread 스레드가 NEW상태면 

targetThread 스레드의 start함수를 호출하는 내용이다.

그리고 나서 targetThread 스레드의 상태가 종료 상태이면 작업을 종료한다.

 

TargetThread 클래스의 run함수의 맨 마지막 sleep함수를 주석처리하고 실행을 해보자.

 * 1.StatePrintThred객체는 스레드로 동작하며 작업을 계속진행하는 객체이다.
 * 2.위의 객체를 생성하면서 다른 쓰레드 객체를 전달받아 저장한다.
 * 3.저장된 객체는 start()함수를 이용해 실행되지 않은 상태이다. 

   이 때 getState()함수를 이용하여 현재 상태를 확인할 수 있다.
 * 4.start()함수가 실행 전의 상태이므로 NEW 인 상태  
 * 5.NEW인 상태를 확인하면 조건문에 의해 start()함수가 호출되므로 getState() 받은 값은 RUNNABLE 상태
 * 6.RUNNABLE 상태에서 다른 쓰레드가 동작하므로 주어진 시간 동안 기다리는 상태인 

   일시정지 상태 TIMED_WAITING 
 * 7.반복문이 완료되면 실행이 완료된 상태이므로 실행을 마친 상태인 TERMINATED 상태가 표시된다.