본문 바로가기
프로그래밍

Java : 스레드 sleep, join, interrupt, isAlive 를 이해하기 좋은 기본 샘플코드

by hansoo.labs 한수댁 2017. 1. 3.
Java : 스레드 sleep, join, interrupt, isAlive 를 이해하기 좋은 기본 샘플코드

sleep() : 명시된 시간만큼 해당 스레드를 대기
wait() : 명시된 시간만큼 해당 스레드를 대기
join() : 명시된 시간만큼 해당 스레드가 죽기를 기다린다.
interrupt() : 위 3가지 행위를 멈추도록 한다. (대기상태 일 때만)


public class ThreadTest
{
  public static void main(String[] args)
  {
    Sleep s = new Sleep();
    s.start();
    try {
      int cnt = 0;
      while(cnt<2) {
        s.join(1000); // 1초씩 기다림.
        cnt++;
        System.out.format("%d second wated\n", cnt);
      }
      if(s.isAlive()) { // 살아있다면
        s.interrupt(); // InterruptedException 발생 
      }
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
}


public class Sleep extends Thread {

  public void run() {
    try {
      Thread.sleep(10000); // 10초간 대기한 후 종료 
    }
    catch(InterruptedException e) {
      System.out.println("Somebody stopped me TT");
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
}

from : 자바 성능 튜닝 이야기

태그

,

댓글0