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

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

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

[ ] 자바의 정석 기초편 카테고리
chapter 13 쓰레드
chapter 13-15 쓰레드의 우선순위 예제
예제 13-6

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

class Ex13_6 {
	public static void main(String args[]) {
    	ThreadEx6_1 th1 = new ThreadEx6_1();
        ThreadEx6_2 th1 = new ThreadEx6_2();
        
        th2.setPriority(7);
        
        System.out.println("Priority of th1(-) : " + th1.getPriorty());
        System.out.println("Priority of th2(|) : " + th2.getPriorty());
        th1.start();
        th2.start();
    }
}

class ThreadEx6_1 extends Thread {
	public void run() {
    	for(int i=0; i < 300; i++) {
        	System.out.print("-");
            for(int x=0; x < 10000000; x++);
        }
    }
}

class ThreadEx6_2 extends Thread {
	public void run() {
    	for(int i=0; i < 300; i++) {
        	System.out.print("|");
            for(int x=0; x < 10000000; x++);
        }
    }
}


2. 해석본

class Ex13_6 {
// Ex13_6 클래스 선언
	public static void main(String args[]) {
    // 접근제어자 public으로 메모리에 상주하게 리턴값이 없이 main 메서드 선언
    	ThreadEx6_1 th1 = new ThreadEx6_1();
        // ThreadEx6_1 클래스의 인스턴스 th1의 생성자 ThreadEx6_1() 선언
        ThreadEx6_2 th2 = new ThreadEx6_2();
        // ThreadEx6_2 클래스의 인스턴스 th2의 생성자 ThreadEx6_2() 선언
        
        th2.setPriority(7);
        // 인스턴스 th2의 메서드 setPriority 사용
        
        System.out.println("Priority of th1(-) : " + th1.getPriorty());
        // Priority of th1(-) : " + th1.getPriorty() 출력
        System.out.println("Priority of th2(|) : " + th2.getPriorty());
        // Priority of th2(|) : " + th2.getPriorty() 출력
        th1.start();
        // th1.start() 사용
        th2.start();
        // th2.start() 사용
    }
}

class ThreadEx6_1 extends Thread {
// Thread를 상속하는 ThreadEx6_1 클래스 선언
	public void run() {
    // 접근제어자 public으로 리턴값이 없는 함수 run() 선언
    	// for 문
        for(int i=0; i < 300; i++) {
        	System.out.print("-");
            for(int x=0; x < 10000000; x++);
        }
    }
}

class ThreadEx6_2 extends Thread {
// Thread 클래스를 상속하는 ThreadEx6_2 클래스 선언
	public void run() {
    // 접근제어자 public으로 리턴값이 없는 함수 run() 선언
    	
        // for문 선언
        for(int i=0; i < 300; i++) {
        	System.out.print("|");
            for(int x=0; x < 10000000; x++);
        }
    }
}
반응형