본문 바로가기
프로그래밍/자바의 정석 기초편 코드 분석

자바의 정석 기초편 코드 분석 132(예제 13-8)

by 리드민 2023. 9. 25.
반응형

[ ] 자바의 정석 기초편 카테고리
chapter 13 쓰레드
chapter 13-8 sleep() 예제
예제 13-8

[ ] 코드 분석
1. 원본 코드

class Ex13_8 {
	public static void main(String args[]) {
    	ThreadEx8_1 th1 = new ThreadEx8_1();
        ThreadEx8_2 th2 = new ThreadEx8_2();
        th1.start(); th2.start();
        
        try {
        	th1.sleep(2000);
        } catch(InterruptedException e) {}
        
        System.out.print("<<main 종료>>");
   } // main
}

class ThreadEx8_1 extends Thread {
	public void run() {
    	for(int i=0; i < 300; i++) System.out.print("-");
        System.out.print("<<th1 종료>>");
    }
}

class ThreadEx8_2 extends Thread {
	public void run() {
    	for(int i=0; i < 300; i++) System.out.print("|");
        System.out.print("<<th2 종료>>");
    } // run()
}


2. 해석본

class Ex13_8 {
// Ex13_8 클래스 선언
	public static void main(String args[]) {
    // 접근제어자 public으로 메모리에 상주하게 리턴값이 없이 main 메서드 선언
    	ThreadEx8_1 th1 = new ThreadEx8_1();
        // ThreadEx8_1 클래스의 인스턴스 th1 선언 ThreadEx8_1 생성자 선언
        ThreadEx8_2 th2 = new ThreadEx8_2();
        // Thread8_2 클래스의 인스턴스 th2 선언 ThreadEx8_2 생성자 선언
        th1.start(); th2.start();
        // th1인스턴스의 start() 메서드 선언
        
        try {
        	th1.sleep(2000);
        } catch(InterruptedException e) {}
        
        System.out.print("<<main 종료>>");
   } // main
}

class ThreadEx8_1 extends Thread {
// Thread 클래스를 상속하는 ThreadEx8_1 클래스 선언
	public void run() {
    // 접근제어자 public으로 리턴값이 없이 run() 메서드 선언
    	for(int i=0; i < 300; i++) System.out.print("-");
        // for문 선언
        System.out.print("<<th1 종료>>");
        // <<th1 종료>> 출력
    }
}

class ThreadEx8_2 extends Thread {
// Thread 클래스를 상속하는
	public void run() {
    // 접근제어자 public으로 리턴값이 없이 run() 메서드 선언
    	for(int i=0; i < 300; i++) System.out.print("|");
        // for문 선언
        System.out.print("<<th2 종료>>");
        // <<th2 종료>> 출력
    } // run()
}
반응형