본문 바로가기

java/자바

[Chap15] - 05 쓰레드의 상태 #1

[Chap15] - 05 쓰레드의 상태 #1

 

이넘 타입

객체를 만들음

 

객체를 실행시킴

 

양보를 하는 메소드는 있으나, 내가 쓸래 메소드는 없다.

 

객체 끝나면 . 다시 실행안됨.

 

모든 쓰레드는 일회용이다.

 

 

 

 

이렇게 Tread.State 타입으로 변수를 선언하고,

thread.getState() 함수 호출 ,   print를 하면

변경되는 상태를 확인할 있다.

 

main 쓰레드가

thread.join() 호출했으므로

main 쓰레드는 멈춘다. 그리고 thread 실행된다.

 

 

1억번을 돌리는데

0.5초가 걸려서

thread1 실행이 2 나온거다.

 

왜냐면 1초마다 상태를 변경하기 때문에

 

yield 실행대기 <--> 실행을 왔다갔다

 

 

쓰레드는 생성되자마자

3초동안 잠만 잔다.

만약에 interrupted Exception 발생하면

아래를 실행해라.

 

myThread 아직 잠자는 시간 3초가 지나지 않았으나

myTread.interrupt() 실행되니까

catch 넘어가서

myThead 실행 -> 소멸 된다.

 

myThread1 1억초동안 실행된다

 

myThread2 내부에 myThread1 가지고 있다.

myThread1에게 우선 실행시킨다. 3초동안을

3초가 지나면
myThread2
자신의 1억초를 실행시킨다.