I.lib()/I.lib(Java)

Thread 의 currentThread() , interrupt() , join() 테스트 결과

.07274. 2013. 1. 15. 16:17

Thread 를 테스트 해보았다.

 

1.

 

Thread serverThread = Thread.currentThread();

 

System.out.println("Name : " + serverThread.getName());

 

결과값은 Main 이 나온다. 기본적으로 Java 의 Main 을 실행시키면 Main 은 Thread로 실행되기 때문이다.

 

2.    

 

this.serverThread.interrupt();

Thread.sleep(2000);

 

결과는 sleep interrupt 라는 Exception 이 나온다. 아마도 interrupt 라는 명령은 더이상 main Thread(메서드)

 

가 추가 Thread(sleep 스레드 건 부분) 를 생성할수 없게 한듯 하다.

 

3.

this.serverThread.join();

System.out.println("Hello");

 

결과는 무한 대기를 탄다. 이유는 join() 을 실행하면 main 메서드가 끝나기를 기다렸다가(락) 지정 스레드(main)가

 

끝이 나아 다음으로 진행하기 때문이다. (이부분은 테스트로 확인됨.)