CS
[OS] Thread 상태 제어
wahu
2020. 3. 3. 16:27
스레드 상태 변화
1) 처음 생성 시 실행 대기 상태
2) CPU 스케줄러에 의해 선택되면 실행 됨
3) 시간 할당량이 끝나면 실행 대기 상태로 감. 시간 할당량이 끝나기 전 yield() 메서드를 호출하면 실행 대기로 만들 수 있음
4) 스레드가 실행 상태이면
sleep() 메서드를 호출하게 되면 주어진 시간동안 일시정지 상태가 되고, 시간이 지나면 실행 대기가 됨
join() 메서드를 호출하게 되면, 해당 메서드를 호출 한 스레드가 종료 될 때까지 일시 정지 되었다가 실행 대기 상태로 이동
wait() 메서드를 호출하게 되면 일시 정지가 됨. 하지만 다른 스레드가 notify(), notifyAll()을 호출해주어야 실행 대기로 갈 수 있음
5) 일시 정지 상태이면
interrupty() 메서드가 호출 되면, 예외가 발생하면서 실행 대기 상태로 갈 수 있음
6) 실행 중이면
stop()을 호출하여 스레드를 종료 시킬 수 있다. 하지만 Deprecated 됨
참고
https://ict-nroo.tistory.com/41