1. Flag 에 의한 Interrupt
public static void main(String[] args) { ThreadStart threads = new ThreadStart(); // 스레드 생성Thread thread = new Thread(threads);thread.start(); // 스레드 시작// TODO ...threads.stop(); // 스레드 종료}
class ThreadStart implements Runnable {
private boolean interruption = false; // Flag
public void run(){
while (!interruption){ // Flag 가 True 때 루프를 빠져 나옴
// TODO ...
}
public void stop(){
interruption = true; // Flag 를 true 로 셋팅
}
}
2. 직접 thread.interrupt() 호출에 의한 방법
public static void main(String[] args) { ThreadStart threads = new ThreadStart(); // 스레드 생성Thread thread = new Thread(threads);thread.start(); // 스레드 시작// TODO ...thread.interrupt(); // 스레드 인터럽트호출}
class ThreadStart implements Runnable {
public void run(){
try{
while (!Thread.currentThread().isInterrupted()){
// isInterrupted() 는 스레드의 인터럽트 간섭을 확인하는 Flag
}
}catch (InterruptedException e) {}
}finally {
// TODO ...
}
3. Thread.stop,Thread.suspend
,Thread.resume 는 권장하지 않는 방식임
영 문 : http://java.sun.com/j2se/1.4.2/docs/guide/misc/threadPrimitiveDeprecation.html
한글번역본 : http://pllab.kw.ac.kr/j2seAPI/guide/misc/threadPrimitiveDeprecation.html
4. Thread 상태
댓글 없음:
댓글 쓰기