* 목적
Thread 강제 종료 시키는 방법 확인
* 내용
1. while 안에 사용자 boolean 변수를 넣어두고 이를 변경함으로써 처리
2. interrupt 를 이용하여 exception을 발생시키고 여기서 break 시킴
* 원인
- stop, suspend 등이 deprecate 됨 => stop이나 suspend 시 그 즉시 thread가 멈추므로 프로그램에 영향을 끼칠수 있다고 함
이를 위해 제안한게 interrupt 를 이용한 것임
interrupt()
1. 해당 Thread가 바로 중지되지는 않고 작업을 쭉 진행한다.
2. 중간에 sleep(), wati(), join() 호출 시 Thread가 종료되면서 exception이 발생한다. => InterruptedException 이 붙어있는 함수들임
=> wait의 경우 락을 해제하면서 wati 셋으로 이동, wait상태에서 interrupt() 받으면 해당 Thread가 락을 다시 획득할 때 까지 살아있다 락 취득 시 예외 발생함
3. interrupt() 와 Thread.interrupted() 의 차이점
interrupt() => interrupt 상태를 false로 변경시킴
Thread.interrupted => interrupt 의 상태만 반환
* 참고 url
http://docs.oracle.com/javase/6/docs/technotes/guides/concurrency/threadPrimitiveDeprecation.html
http://snowbora.com/483