반응형
[ ] 자바의 정석 기초편 카테고리
chapter 13 쓰레드
chapter 13-27 suspend(), resume(), stop() 예제
예제 13-10
[ ] 코드 분석
1. 원본 코드
class Ex13_10 {
public static void main(String args[]) {
RunImplEx10 r = new RunImplEx10();
Thread th1 = new Thread(r, "*");
Thread th2 = new Thread(r, "**");
Thread th3 = new Thread(r, "***");
th1.start();
th2.start();
th3.start();
try {
Thread.sleep(2000);
th1.suspend(); // 쓰레드 th1을 잠시 중단시킨다.
Thread.sleep(2000);
th2.suspend();
Thread.sleep(3000);
th1.resume(); // 쓰레드 th1이 다시 동작하도록 한다.
Thread.sleep(3000);
th1.stop(); // 쓰레드 th1을 강제종료시킨다.
th2.stop();
Thread.sleep(2000);
th3.stop();
} catch (InterruptedException e) {}
} // main
}
class RunImplEx10 implements Runnable {
public void run() {
while(true) {
System.out.println(Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch(InterruptedException e) {}
}
} // run()
}
2. 해석본
class Ex13_10 {
public static void main(String args[]) {
RunImplEx10 r = new RunImplEx10();
// RunInplEx10 클래스의 인스턴스 r 선언
Thread th1 = new Thread(r, "*");
Thread th2 = new Thread(r, "**");
Thread th3 = new Thread(r, "***");
th1.start();
// th1의 인스턴스 start() 메서드 선언
th2.start();
th3.start();
try {
Thread.sleep(2000);
th1.suspend(); // 쓰레드 th1을 잠시 중단시킨다.
Thread.sleep(2000);
th2.suspend();
Thread.sleep(3000);
th1.resume(); // 쓰레드 th1이 다시 동작하도록 한다.
Thread.sleep(3000);
th1.stop(); // 쓰레드 th1을 강제종료시킨다.
th2.stop();
Thread.sleep(2000);
th3.stop();
} catch (InterruptedException e) {}
} // main
}
class RunImplEx10 implements Runnable {
// Runnable 클래스를 상속하는 RunImpleEx10 클래스 선언
public void run() {
// 접근제어자 public으로 리턴값이 없이 run() 함수 선언
while(true) {
// while문 선언
System.out.println(Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch(InterruptedException e) {}
}
} // run()
}
반응형
'프로그래밍 > 자바의 정석 기초편 코드 분석' 카테고리의 다른 글
자바의 정석 기초편 코드 분석 136(예제 13-12) (0) | 2023.09.26 |
---|---|
자바의 정석 기초편 코드 분석 135(예제 13-11) (0) | 2023.09.26 |
자바의 정석 기초편 코드 분석 133(예제 13-9) (0) | 2023.09.25 |
자바의 정석 기초편 코드 분석 132(예제 13-8) (0) | 2023.09.25 |
자바의 정석 기초편 코드 분석 131(예제 13-7) (0) | 2023.09.25 |