
- 아직 시작되지 않은 상태
- 스레드 객체를 생성하고
start()메소드를 호출한다고 해서 바로 스레드가 실행되는 것이 아닌 "실행 대기 상태(RUNNABLE)"가 됨
- 실행 가능한 스레드의 상태
- CPU 스케줄링에 따라 CPU를 점유하고
run()메소드를 실행(실행 상태로 상태 변경)
- 실행 스레드는
run()메소드를 모두 실행하기 전에 스케줄링에 의해 다시 "실행 대기 상태"로 돌아갈 수 있음.
- 스레드가 실행할 수 없는 상태
- 다시 실행하기 위해서는 "실행 대기 상태"가 되어야 함
일시정지 상태로 가거나 벗어나기 위한 메소드들
run()메소드가 종료되고 더 이상 실행할 코드가 없어 스레드의 실행이 멈춘 상태