NotRunnable 상태 만들기
하나의 스레드가 CPU를 독점하는 것을 막는 효과적인 방법이 있다.
sleep()을 이용해서 일정시간 동안만 대기시키는 방법(자동)
wait()와 notify()를 이용해서 대기와 복귀를 제어하는 방법(수동)
sleep()을 사용할 때 의무적으로 InterruptedException 처리를 해주어야 한다.
♣ sleep()의 사용
하나의 스레드가 CPU를 독점하는 것을 막는 효과적인 방법이 있다.
sleep()을 이용해서 일정시간 동안만 대기시키는 방법(자동)
wait()와 notify()를 이용해서 대기와 복귀를 제어하는 방법(수동)
sleep()을 사용할 때 의무적으로 InterruptedException 처리를 해주어야 한다.
♣ sleep()의 사용
try {
Thread.sleep( 1000 ); //시간의 단위는 1/1000초
} catch( InterruptedException e ) {
e.printStackTrace();
}
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 ) );
}
}
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
프로그램 시작
프로그램 종료
시간: 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();
}
}
스레드에서 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
0회:1087996213815
1회:1087996214815
2회:1087996215815
3회:1087996216815
4회:1087996217815
5회:1087996218815
6회:1087996219815
7회:1087996220815
8회:1087996221815
9회:1087996222815
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.
,