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

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

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

[ ] 자바의 정석 기초편 카테고리
chapter 13 쓰레드
chapter 13-10 싱글쓰레드와 멀티쓰레드 예제2

예제 13-3

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

class Ex13_3 {
	static void startTime = 0;
    
    public static void main(String args[]) {
    	ThreadEx3_1 th1 = new ThreadEx3_1();
        th1.start();
        startTime = System.currentTimeMillis();
        
        for(int i=0; i < 300; i++)
        	System.out.printf("%s", new String("-"));
         
        System.out.print("소요시간1: " + (System.currentTimeMillis()
        													- Ex13_3.startTime));
   }
}

class Thread3_1 extends Thread {
	public void run() {
    	for(int i=0; i < 300; i++) {
        	System.out.printf("%s", new String("|"));
        
        System.out.print("소요시간2:" + (System.currentTimeMillis()
        													- Ex13_3.startTime));
    }
}


2. 해석본

class Ex13_3 {
// Ex13_3 클래스 선언
	static long startTime = 0;
    // long형 정적변수 start
    
    public static void main(String args[]) {
    // 접근제어자 public으로 메모리에 상주하게 리턴값이 없이 main 메서드 선언
    	ThreadEx3_1 th1 = new ThreadEx3_1();
        // ThreadEx3_1 클래스의 인스턴스 th1 선언 
        th1.start();
        // 인스턴스 th1의 메서드 start() 선언
        startTime = System.currentTimeMillis();
        // System클래스의 메서드의 연산결과를 startTime 변수에 저장
        
        // for문 선언
        for(int i=0; i < 300; i++)
        	System.out.printf("%s", new String("-"));
        
        System.out.print("소요시간1: " + (System.currentTimeMillis()
        													- Ex13_3.startTime));
   }
}

class Thread3_1 extends Thread {
// Thread 클래스를 상속하는 Thread3_1 클래스 선언
	public void run() {
    // 접근제어자 public으로 리턴값이 없이 run() 메서드 선언
    	for(int i=0; i < 300; i++) {
        // for문 선언
        	System.out.printf("%s", new String("|"));
        
        System.out.print("소요시간2:" + (System.currentTimeMillis()
        													- Ex13_3.startTime));
    }
}
반응형