NotRunnable Status

Programming/Java 2006. 10. 31. 18:59
NotRunnable 상태 만들기

하나의 스레드가 CPU를 독점하는 것을 막는 효과적인 방법이 있다.
sleep()을 이용해서 일정시간 동안만 대기시키는 방법(자동)
wait()notify()를 이용해서 대기와 복귀를 제어하는 방법(수동)
sleep()을 사용할 때 의무적으로 InterruptedException 처리를 해주어야 한다.

♣ sleep()의 사용
try {
  Thread.sleep( 1000 );  //시간의 단위는 1/1000초
} catch( InterruptedException e ) {
  e.printStackTrace();
}

/**
main()에서의 Thread.sleep()
**/
public class NotRunnableMain {
  public static void main( String[] args ) {
    long current = System.currentTimeMillis();
    System.out.println( "프로그램 시작" );
    try {
      Thread.sleep( 5000 );
    } catch( InterruptedException e ) {
      e.printStackTrace();
    }
    System.out.println( "프로그램 종료" );
    System.out.println( "시간: " + ( System.currentTimeMillis() - current ) );
  }
}
// output
프로그램 시작
프로그램 종료
시간: 5000

/**
스레드에서 sleep()의 사용
**/
import java.util.*;
class NotRunnableThread extends Thread {
  public void run() {
    int i = 0;
    while ( i < 10 ) {
      System.out.println( i + "회: " + System.currentTimeMillis() + "\t" );
      i = i + 1;
      try {
        this.sleep( 1000 );
      } catch( Exception e ) {
        System.out.println( e );
      }
    }
  }
}
public class NotRunnableThreadMain {
  public static void main( String[] args ) {
    NotRunnableThread s = new NotRunnableThread();
    s.start();
  }
}
// output
0회:1087996213815
1회:1087996214815
2회:1087996215815
3회:1087996216815
4회:1087996217815
5회:1087996218815
6회:1087996219815
7회:1087996220815
8회:1087996221815
9회:1087996222815



WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,